前提・実現したいこと
ゲームオブジェクトを配列から取得してすべてsetactive(False)にしようとしました
発生している問題・エラーメッセージ
配列名.Lengthとしているのに、インデックスが配列の範囲外とエラーが出ます
IndexOutOfRangeException: Index was outside the bounds of the array.
該当のソースコード
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class MalingScript : MonoBehaviour 6{ 7 8 public GameObject One; 9 public GameObject Two; 10 public GameObject Three; 11 public GameObject Four; 12 public GameObject Five; 13 public GameObject Six; 14 public GameObject Seven; 15 public GameObject Eight; 16 public GameObject Nine; 17 public GameObject Ten; 18 public GameObject Eleven; 19 public GameObject Twelve; 20 public GameObject Thrteen; 21 22 // 型名 配列の名前 23 GameObject[] TrampBox = new GameObject[13]; 24 25 // Start is called before the first frame update 26 void Start() 27 { 28 TrampBox[0] = One; 29 TrampBox[1] = Two; 30 TrampBox[2] = Three; 31 TrampBox[3] = Four; 32 TrampBox[4] = Five; 33 TrampBox[5] = Six; 34 TrampBox[6] = Seven; 35 TrampBox[7] = Eight; 36 TrampBox[8] = Nine; 37 TrampBox[9] = Ten; 38 TrampBox[10] = Eleven; 39 TrampBox[11] = Twelve; 40 TrampBox[12] = Thrteen; 41 TrampBox[TrampBox.Length].SetActive(false); // エラー元 42 }
試したこと
配列の要素の個数をあらかじめ決めるようにしましたが、変わりませんでした
補足情報(FW/ツールのバージョンなど)
Unity2019.4
VisualStudio2019
TrampBox.Lengthの数値を確認しましょう。
答えがわかるのではないでしょうか。
あと、上記コードでは実現したい事の内容にはならないと思います