[英]GetComponent returning null
在两个Unity 5.4 / 5.5中,由于某些原因,我都遇到了GetComponent无法返回我的GameObject的CharacterController的问题。 重新启动Unity后,它又可以工作了。
_MAIN运行以下脚本:
private GameObject frog;
private CharacterController controller;
void Start () {
frog = GameObject.Find ("Frog");
controller = frog.GetComponent<CharacterController> ();
Debug.Log(controller); // returns null
}
void Update () {
if (controller.isGrounded) {
// error is thrown
}
}
在Update中引用了controller
后,出现错误:
MissingComponentException:“青蛙”游戏对象没有附加“ CharacterController”,
仅供参考, frog
返回了GameObject就好了。
代替使用GameObject.Find("Frog")
尝试使用GameObject.FindWithTag("Frog")
并将标签“ Frog”添加到青蛙对象。
发生这种情况的原因是某种程度上,某个地方将名为“青蛙”的第二个对象添加到了场景中。 发生这种情况时,Unity会随机选择找到的两个对象之一,这有时会使其工作,但有时不会。
通过切换到标签,您更有可能唯一标识该对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.