【Unity】二次元配列の初期化でIndexOutOfRangeException

今日のエラー

二次元配列をこのような形で初期化したところ、data[1, 1]を読もうとすると
IndexOutOfRangeException: Array index is out of range.
となった。

コード
int[,] data = new int[,] {
    { 0 },
    { 2, 2 ,2 },
    { 1, 100 },
    { 100, -1 , 2}
};

原因

初期化の仕方が誤っていた。

解決

矩形配列として宣言する
int[,] data = new int[,]{
    { 0, 0, 0 },
    { 2, 2 ,2 },
    { 1, 100, 0 },
    { 100, -1 , 2 }
};
ジャグ配列として宣言する
int[][] data = new int[4][]
data[0] = new int[]{ 0 };
data[1] = new int[]{ 2, 2 ,2 };
data[2] = new int[]{ 1, 100 };
data[3] = new int[]{ 100, -1 , 2 };
};

環境

  • OSX El Capitan v10.11.2
  • Unity v5.2.3f1
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

はじめまして、秋月なるです。
アラフォー会社員で、スマホアプリ/ゲーム/AIが好き。新しいものを見ると触りたくなるタイプで、スマホやウェアラブル等ガジェットが好きですが、よく買ったあとに「思ってたのと違う…」をやりがち。
ブログ投稿は趣味の1つなので、ゆるく続けていこうと思います。

目次