static void PrefabApply(GameObject obj)
{
PrefabType pType = PrefabUtility.GetPrefabType(obj);
if (pType != PrefabType.PrefabInstance)
return;
//这里必须获取到prefab实例的根节点,否则ReplacePrefab保存不了
GameObject prefabGo = GetPrefabInstanceParent(obj);
UnityEngine.Object prefabAsset = null;
if (prefabGo != null)
{
prefabAsset = PrefabUtility.GetPrefabParent(prefabGo);
if (prefabAsset != null)
{
PrefabUtility.ReplacePrefab(prefabGo, prefabAsset, ReplacePrefabOptions.ConnectToPrefab);
}
}
AssetDatabase.SaveAssets();
}