using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using Snxxz.UI; public class PrefabHelper { [InitializeOnLoadMethod] static void StartInitializeOnLoadMethod() { PrefabUtility.prefabInstanceUpdated = delegate (GameObject instance) { var prefab = PrefabUtility.GetPrefabParent(instance) as GameObject; var prefabLoaders = prefab.GetComponentsInChildren(); var dirty = false; foreach (var loader in prefabLoaders) { if (!string.IsNullOrEmpty(loader.prefabName)) { var children = new List(); for (int i = 0; i < loader.transform.childCount; i++) { children.Add(loader.transform.GetChild(i)); } for (int i = children.Count - 1; i >= 0; i--) { if (children[i].name == loader.prefabName) { GameObject.DestroyImmediate(children[i].gameObject, true); EditorUtility.SetDirty(loader.gameObject); dirty = true; } } } } if (dirty) { AssetDatabase.SaveAssets(); } }; } }