如何确定以前引用的,现在缺少的MonoBehaviour脚本的名称?

时间:2015-08-14 20:17:59

标签: unity3d

我有一个带有警告的Unity项目:

The referenced script on this Behaviour is missing! 

我已经确定哪些游戏对象有这些错误的引用,并且我有一组脚本(cs文件),我知道这些脚本包含预期的脚本,但是哪些组件实例(及其保存的状态)映射到哪些脚本我显然无法辨别。

有没有办法知道缺少引用的组件最初指向哪些脚本,所以我可以手动将正确的脚本重新分配回组件并保留组件状态?

1 个答案:

答案 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]或公共成员。

然后您可以在项目中搜索带有这些自定义变量名称的脚本。