2017-10-11 59 views
0

我試圖在對象之間的編輯器中繪製一些行。因爲我希望系統是動態的,所以我試圖創建它,以便您可以簡單地從編輯器中插入對象,並且該行將自動更新而無需編輯代碼。NullException當通過編輯器添加對象到數組而不是腳本

我已經創建了下面的代碼:

public class PathLines : MonoBehaviour { 

    public GameObject[] pathPoints; 


    // Update is called once per frame 
    void Update() { 
     for(int i = 0; i < pathPoints.Length; i++) 
     { 
      if(i != pathPoints.Length) 
      { 
       Handles.DrawLine(pathPoints[i].transform.position, pathPoints[i + 1].transform.position); 
      } else 
      { 
       Handles.DrawLine(pathPoints[i].transform.position, pathPoints[0].transform.position); 
      } 

     } 
    } 
} 

然後插入當前3個對象編輯器中的數組。但是,我確實在第一個pathPoints [i]處得到了NullException錯誤,而且無論我看起來如何修復它。我如何擺脫這個錯誤?

(編輯)標記爲重複: 我的問題是關於在通過編輯器將對象插入到數組後發生NullException錯誤。不應該這樣自動初始化數組,從而不會導致Null錯誤?

+0

什麼是NullException?當第一次更新被調用時,您的路徑似乎不會被初始化。您可以將其初始化爲空數組,並在需要時添加值。 – 2017-10-11 08:43:51

+1

確定什麼是空....並修復它 – BugFinder

+0

在斷點處檢查並檢查快速查看中的變量 – Kell

回答

0

最明顯的可能的原因是:

  • pathPoints陣列沒有被初始化(pathPointsnull

  • 陣列元件中的一個沒有被初始化(的pathPoints[i]一個是null]

  • 另外,您的if檢查應該說明:i != pathPoints.Length - 1

相關問題