PrefabUtility这个类是主要用到的,我们来看下里面的常用方法是做什么的。
一、PrefabUtility.CreatePrefab()方法(2018.3以后弃用)
public static GameObject CreatePrefab(string path, GameObject go, ReplacePrefabOptions options);
该方法是把一个gameobject保存成预设体,传参go的根节点,保存到哪个路径下,替换预设参数自己选择,返回该预设体的GameObject。
//unity2018.3变成了更明确的 API, SavePrefabAsset, SaveAsPrefabAssetAndConnect,SaveAsPrefabAsset。
public enum ReplacePrefabOptions
{
Default = 0,//通过将预先存在的连接与预设体匹配来替换预设体。(不会关联引用)
ConnectToPrefab = 1,//生成预设后后,对象和预设关联引用。
ReplaceNameBased = 2 //使用hierarchy视图中基于名称的查找替换预设。(不会关联引用)
}
注意:使用ReplaceNameBased不会丢失脚本的引用,比如有个脚本引用了某个prefab,如果进行替换prefab或更新该prefab,引用不会丢失(不会missing prefab)。但是Default、ReplaceNameBased会丢。