青いやつの進捗日記。

べんきょうのしんちょくをかいていきます。プログラミング初心者。

IndexOutOfRangeException: Array index is out of range. ってUnityで出たけど解決

teratail.com

for (int i = 0; i <= spectrum.Length; i++) {
  var val = spectrum[i];
  if (val > maxValue) {
    // maxValue が最も大きい周波数成分の値で
    maxValue = val;
    // maxIndex がそのインデックス。欲しいのはこっち。
    maxIndex = i;
  }
}

ここでのエラーが

IndexOutOfRangeException: Array index is out of range.

で、つまりサイズを超えてfor文回してるから、でした。

for (int i = 0; i < spectrum.Length; i++) {
  var val = spectrum[i];
  if (val > maxValue) {
    // maxValue が最も大きい周波数成分の値で
    maxValue = val;
    // maxIndex がそのインデックス。欲しいのはこっち。
    maxIndex = i;
  }
}

1つ分多く回そうとしてspectrum[i]がない、となっていたので、i < spectrum.Length にして、解決。