我正在尝试制作游戏中的错误。我收到以下错误。
NullReferenceException: Object reference not set to an instance of an object
这个相同的代码在我的其他一个脚本中工作正常,但在这一个中它继续通过这个错误。我以为我把它设置为对象的一个实例,但我猜不是。
UnityEngine.Component book001GUIOld = GameObject.FindWithTag("Book001Canvas").GetComponent("Canvas");
UnityEngine.Behaviour book001GUI = (UnityEngine.Behaviour)book001GUIOld;
有什么建议吗?如果您需要更多代码,请告诉我们。我也试过了。
UnityEngine.Behaviour book001GUI = GameObject.FindWithTag("Book001Canvas").GetComponent("Canvas") as behaviour;
答案 0 :(得分:0)
必须是因为GameObject.FindWithTag("Book001Canvas")
返回null,
然后.GetComponent("Canvas");
抛出异常。
答案 1 :(得分:0)
<强>描述强>
返回一个标记为
tag
的活动GameObject。如果没有,则返回null
找到GameObject。
所以你可能想尝试捕捉错误:
var book001Canvas = GameObject.FindWithTag("Book001Canvas");
if (book001Canvass != null)
{
UnityEngine.Component book001GUIOld = book001Canvas.GetComponent("Canvas");
}
else
{
// Recover from not finding an object with the Book001Canvas tag
}