1、排查代码是否存在直接修改预制体的材质为克隆体。
解决:删了这段代码。
2、双击Prefab文件进入预制体编辑模式时,会执行预制体身上的脚本方法Awake、Start等(生命周期方法),所以要排查这些方法里是否有克隆材质行为。
解决:
① 转移这段克隆代码到外部。
② 添加条件判断,脚本所在物体本身是预制体则不执行克隆代码,否则正常执行。
可用:UnityEditor.PrefabUtility.IsPartOfPrefabAsset(this.gameObject) 判断物体是否预制体资源.
【Unity】判断对象是否是预制体以及是否存储在磁盘中_unity 判断是否时预制体_Arvin ZHANG的博客-CSDN博客

文章介绍了如何排查代码中直接修改预制体材质的问题,建议将克隆代码移出Prefab内的生命周期方法,或添加条件判断以避免对预制体自身进行克隆。同时,使用UnityEditor.PrefabUtility.IsPartOfPrefabAsset函数检测对象是否为预制体资源。
4779

被折叠的 条评论
为什么被折叠?



