簡體   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