2017-10-11 25 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とは何ですか?あなたのpathPointsは、最初の更新が呼び出されたときに初期化されていないようです。それを空の配列に初期化し、必要に応じて値を追加することができます。 –

+1

何がヌルであるかを特定し、それを修正してください – BugFinder

+0

Puをブレークポイントに入れて、クイックウォッチの変数を確認してください – Kell

答えて

0

最も明白な原因は次のとおり

  • pathPointsアレイは、アレイ素子の

  • 一つが初期化されていない(pathPointsnullで)初期化されていない(pathPoints[i]の一つはnull]

  • あります
  • でも、ifの小切手には、次のように記載してください:i != pathPoints.Length - 1

関連する問題