繁体   English   中英

GetComponent返回null

[英]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.

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