Unity2018编辑器脚本趟坑记录

解除预制体问题:(这个例子是解除游戏中的Canvas与Asset中的预制体的关系)

if( PrefabUtility.IsAnyPrefabInstanceRoot(GameObject.Find("Canvas")))
PrefabUtility.UnpackPrefabInstance(GameObject.Find("Canvas"), PrefabUnpackMode.Completely, InteractionMode.AutomatedAction);

保存问题:(有时利用Editor脚本修改了物体参数之后,编辑器无法获知,且无法保存,存一下数据和场景就可以了)

AssetDatabase.SaveAssets(); //存所有数据 
EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene()); //存当前场景

数据修改没刷新的问题:(把用Editor脚本改变了的text的数据通知Editor一下,就可以刷新显示新的数据了)

EditorUtility.SetDirty(GameObject.Find("Panel1").transform.Find("text").gameObject);

原文地址:https://www.cnblogs.com/Feiyuzhu/p/12377149.html