2014-05-22 32 views
0

的NullReferenceException:對象沒有設置爲在統一的3D對象的試圖使一個函數

using UnityEngine; 
using System.Collections; 
[RequireComponent(typeof(flipPlayer))] 
public class enemyInstantiate : MonoBehaviour 
{ 
    public GameObject[] enemies; 
    public Transform enemyPos; 
    public GameObject enemyClone; 



    void Start() 
    { 

     enemyPos = GameObject.Find("enemySpawn").transform; 
     enemyClone = GameObject.FindGameObjectWithTag("Player"); 
     enemySpawn(); 
     flip(); 
    } 

    public void enemySpawn() 
    { 

     int enemyIndex = Random.Range(0, enemies.Length); 
     Instantiate(enemies[enemyIndex], transform.position, transform.rotation); 


    } 
    void flip() 
    { 

     enemyClone.GetComponent<flipPlayer>().enabled = true; 

    } 

} 

的NullReferenceException一個實例:不設置爲一個對象 enemyInstantiate.flip的實例對象引用() (在資產/腳本/ enemyInstantiate.cs:32) enemyInstantiate.Start()(在資產/腳本/ enemyInstantiate.cs:18)

我是很新,統一的3D 並且仍然^ h麻煩,你能幫忙解決問題是什麼,爲什麼我得到一個nullReferenceException。

錯誤發生在行(enemyClone.GetComponent()。enabled = true;)。

+1

哪一行是錯誤引用?你能用完整的錯誤更新你的問題嗎? –

+0

可能重複[什麼是NullReferenceException,我該如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – LearnCocos2D

回答

1

可能在此行

enemyClone = GameObject.FindGameObjectWithTag("Player"); 

將返回null爲VAR enemyClone線,和/或GetComponent<flipPlayer>()

enemyClone.GetComponent<flipPlayer>() 

也正在返回null

當您嘗試訪問空引用的對象的成員時,會發生此錯誤。

因此,檢查哪個引用爲null的方法是通過MonoDevelop進行調試。

1

沒有完整的錯誤,唯一的事情,我可以說是:

  • Random.Range是最小值和最大值(含)之間一個數字!所以如果你的長度是4,例如你的長度是0-4,並且你嘗試訪問敵人[4],它就會破壞!你需要你的行是Random.Range(0,enemies.length - 1);
  • 你有沒有物品在你的敵人數組?
  • 你有在現場的enemyspawn?也許可以首先將該行分隔成一個聲明,然後在嘗試訪問它的變換之前確保該項不爲null。

希望這可以幫助你!如果沒有,請從行郵其中空引用正在發生

相關問題