using System.Linq;
using UnityEditor;
using UnityEngine;
public class ReplaceTool : EditorWindow
{
[MenuItem("Custom/Replace Tool")]
public static void ShowWindow()
{
GetWindow<ReplaceTool>("Replace");
}
public ReplaceTool()
{
this.Focus();
this.minSize = new Vector2(300, 150);
}
#region Fields
private string SearchName = "";
private GameObject prefab;
#endregion
private void OnGUI()
{
SearchName = EditorGUILayout.TextField("Search name : ", SearchName);
prefab = EditorGUILayout.ObjectField("Prefab : ", prefab, typeof (GameObject)) as GameObject;
if (GUILayout.Button("Replace", GUILayout.Height(30)))
{
var found = FindObjectsOfType<GameObject>().Where(o => o.name == SearchName).ToArray();
foreach (var o in found)
{
var t = o.transform;
var rep = Instantiate(prefab, t.position, t.rotation) as GameObject;
rep.transform.localScale = t.localScale;
rep.name.Replace("(Clone)", "");
DestroyImmediate(o);
}
}
}
}