我有一个带有警告的Unity项目:
The referenced script on this Behaviour is missing!
我已经确定哪些游戏对象有这些错误的引用,并且我有一组脚本(cs文件),我知道这些脚本包含预期的脚本,但是哪些组件实例(及其保存的状态)映射到哪些脚本我显然无法辨别。
有没有办法知道缺少引用的组件最初指向哪些脚本,所以我可以手动将正确的脚本重新分配回组件并保留组件状态?
答案 0 :(得分:3)
确保在编辑器设置中,资产序列化模式为“强制文本”。
您可以在文本编辑器中打开场景(或预制)文件,并使用缺少的脚本参考搜索GameObject名称,例如“TheGameObjectWithTheMissingBehaviour”
你应该看到这样的东西(我只是复制了重要的一行)
--- !u!1 &298606752
GameObject:
m_Component:
- 54: {fileID: 1199074165}
- 114: {fileID: 1199074166}
m_Name: TheGameObjectWithTheMissingBehaviour
---
游戏对象下面应该有一个至少有一个MonoBehaviour的列表,看起来像这样
--- !u!114 &1199074166
MonoBehaviour:
m_Enabled: 1
_myCustomVariableA: 1
_myCustomVariableB: 2
_myCustomVariableC: 2
---
你可以在最后几行看到自定义变量,即[SerializedField]或公共成员。
然后您可以在项目中搜索带有这些自定义变量名称的脚本。