繁体   English   中英

unity c# - NullReferenceException:未将对象引用设置为对象的实例

[英]Unity c# - NullReferenceException: Object reference not set to an instance of an object

我的imagetextruntime error 我在我的hierarchy创建的两个对象命名正确,但显然我的脚本找不到它们。 为什么我写的还不够? 我在error得到的只是Object reference未设置为Object reference的实例,但我不明白为什么当我的层次结构中有一个对象时我需要创建该对象的实例。 我对 unity 和c#仍然相对较新,通过搜索找不到任何真正的解释性答案,并且 unity 教程不是很有帮助,因为我确定它只是一个关于c#的基本问题

private Text serverInfoText;
private GameObject serverInfoImage;

void Awake()
{
    serverInfoImage = GameObject.Find ("ServerInfoImage");
    serverInfoImage.SetActive (false);
    serverInfoText = GameObject.Find("ServerInfoText").GetComponent<Text>();
}

不看你的场景就无法说。

尝试的事情:

  • GameObject.Find仅适用于活动的游戏对象。 确保游戏对象在场景视图中没有变灰。
  • 仔细检查名称字符串是否正确并使用Debug.Log进行完整性检查。
  • 您没有提到实际发生的异常发生在哪一行。 在上面的代码中,有可能在两个位置抛出异常:如果serverInfoImage为 null,则在SetActive()如果未找到 ServerInfoText 对象,则在GetComponent<Text>() 阅读您获得的实际异常消息,并确保您查看的是正确的行/对象。
  • 由于您的对象已经在您的场景中创建,因此使用GameObject.Find获取对对象的引用没有任何优势。 通过检查器直接设置对对象的引用会更有效。 此选项具有使用禁用游戏对象的额外好处。 要么将您的两个成员变量设为私有,要么使用SerializeField属性使属性在检查器中可见。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM