前提・実現したいこと
ScriptA中の長さが8のbool配列 x[] の中身を別のスクリプト(ScriptB)から指定したい。
発生している問題・エラーメッセージ
以下のエラーがUnity上で返ってきました。
ビジュアルスタジオ上では何もエラーは表示されませんでした。
ScriptBのほうでエラーが出ているみたいです。
IndexOutOfRangeException: Index was outside the bounds of the array.
該当のソースコード
C#
1//ScriptA.cs(monovihaviour,オブジェクトにアタッチ済み) 2public bool[] x= new bool[8]; 3void Start() 4{ 5 ScriptB.CheckX(gameObject.transform, x); 6} 7 8 9//ScriptB.cs(monovihaviourなし) 10public static void CheckX(Transform transform, bool[] x) 11{ 12 //周囲八方向の障害物を検知する 13 if (Physics2D.Raycast(transform.position, Vector2.up, 1.0f)) 14 {x[0] = true;} 15 else x[0]= false; 16 //以下、x[7]まで同様。 17 // 18 // ... 19 // 20 if (Physics2D.Raycast(transform.position, new Vector2(-1,1), 1.5f)) 21 {x[7] = true;} 22 else x[7]= false; 23 24} 25
試したこと
別のプロジェクトにて同じスクリプト内にx[]とCheckX(同じスクリプトからなので引数を省略)を書いて実行してみたところ、エラーなく実行できました。
補足情報(FW/ツールのバージョンなど)
Unity2018.2.15f.1
VisualStudio2017
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。