wip : lighting theater
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
public class ReplacWithPrefab : EditorWindow
|
||||
{
|
||||
GameObject prefab;
|
||||
string nameFilter = "spotlight_A";
|
||||
|
||||
[MenuItem("Tools/Replace With Prefab")]
|
||||
static void Open() => GetWindow<ReplacWithPrefab>();
|
||||
|
||||
void OnGUI()
|
||||
{
|
||||
prefab = (GameObject)EditorGUILayout.ObjectField("Prefab", prefab, typeof(GameObject), false);
|
||||
nameFilter = EditorGUILayout.TextField("Name filter", nameFilter);
|
||||
|
||||
if (GUILayout.Button("Replace") && prefab)
|
||||
{
|
||||
var all = FindObjectsByType<GameObject>(FindObjectsSortMode.None);
|
||||
foreach (var go in all)
|
||||
{
|
||||
if (!go.name.StartsWith(nameFilter)) continue;
|
||||
|
||||
var instance = (GameObject)PrefabUtility.InstantiatePrefab(prefab, go.transform.parent);
|
||||
instance.transform.SetPositionAndRotation(go.transform.position, go.transform.rotation);
|
||||
instance.transform.localScale = go.transform.localScale;
|
||||
instance.name = go.name;
|
||||
Undo.RegisterCreatedObjectUndo(instance, "Replace");
|
||||
Undo.DestroyObjectImmediate(go);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59c4a4cbd97f25a4db75c5062141bb84
|
||||
Reference in New Issue
Block a user