unity 保存实例到新预制,保存实例到原预制
创始人
2024-11-16 03:34:48
0

保存预制,很简单的功能,但是走了弯路,记录一下吧

private void SavePrefab(Transform root) {     PrefabInstanceStatus status = PrefabUtility.GetPrefabInstanceStatus(Root.gameObject);      if (status == PrefabInstanceStatus.NotAPrefab)     {         // 如果不是预制件,创建一个新的预制件         string path = EditorUtility.SaveFilePanel("Save prefab", "Assets/", Root.name + ".prefab", "prefab");         if (path.Length != 0)         {             bool suc;             PrefabUtility.SaveAsPrefabAssetAndConnect(Root.gameObject, path, InteractionMode.UserAction, out suc);             Debug.Log("suc =" + suc);         }     }     else {         string prefabPath = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(Root.gameObject);         Debug.Log($"{prefabPath}");         PrefabUtility.SaveAsPrefabAssetAndConnect(Root.gameObject, prefabPath, InteractionMode.UserAction);         //Debug.Log("suc="+ suc);     }    }

如果要保存的Gameobject 本身就是一个预制,不能用下方方法

PrefabUtility.SavePrefabAsset(GameObject root) 这个不是实例才生效,否则报错:

ArgumentException: Can't save a Prefab instance

报错的原因:只要物体拖到场景里,就是一个实例了,所以这个只能用不是实例的物体才可以用

相关内容

热门资讯

推荐十款(aa扑克)的辅助工具... 推荐十款(aa扑克)的辅助工具(透明挂软件)透视(有挂策略)详备教程(哔哩哔哩);aa扑克原来是有辅...
9分钟了解(AA PoKer)... 9分钟了解(AA PoKer)透视辅助可测试真的假的(透明挂)辅助挂(有挂启发)全面教程(哔哩哔哩)...
重大科普(aa poker)软... 重大科普(aa poker)软件发牌原理(透明挂软件)辅助挂(有挂引导)精确教程(哔哩哔哩)这是由厦...
最新研发(WePoKe)辅助工... 最新研发(WePoKe)辅助工具(辅助)辅助挂(有挂启发)细致教程(哔哩哔哩);WePoKe是一款益...
每日必看教程(WEPOKE)辅... 每日必看教程(WEPOKE)辅助透视(软件透明挂)辅助挂(有挂点拨)具体教程(哔哩哔哩),亲,有的,...
新2024版推荐(【wepok... 新2024版推荐(【wepoke】)智能ai(透明挂)透视(有挂指示)深入教程(哔哩哔哩),亲,有的...
擅于辩论的人可以将黑的说成白的... 擅于辩论的人有能力通过逻辑、证据和修辞等手段,巧妙地引导听众接受与事实相反的观点。然而...
3千米以上音视频键鼠延长解决方... KVM光纤延长器​​​​​​​是什么?        KVM光纤延长器是一种使用光纤来...
Scala学习笔记一 文章目录Scala包包的定义:Scala 关键字| @ | |变量定义声明变量...
每日必看教程(WePoKe)透... 1、让任何用户在无需AI插件第三方神器的情况下就能够完成在WePoKe下的调试。2、直接的在WePo...