Unity3D Editor模式下,代码修改预制件prefab

新版Unity中(2017起?),在Editor模式下无法再直接用代码对prefab进行某些操作(比如添加组件等等)。但是对已有组件是可以修改暴露出的值的。

解决方案

通过var newPrefab = PrefabUtility.InstantiatePrefab(prefab) as GameObject;在当前场景中实例化一个物体
所有的修改,都对newPrefab进行。
修改完毕后,通过PrefabUtility.SaveAsPrefabAsset(newPrefab, prefabPath, out isSuccess);把新修改和原prefab关联。
然后删除newPrefab即可。

你可能感兴趣的:(Unity3D)