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<UIPrefabLoader>();
|
|
var dirty = false;
|
foreach (var loader in prefabLoaders)
|
{
|
if (!string.IsNullOrEmpty(loader.prefabName))
|
{
|
var children = new List<Transform>();
|
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();
|
}
|
};
|
}
|
|
|
}
|