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