Unityでtxtファイルに保存した数字の羅列を読み込みたい
Unityのスクリプトをc#で書いています。c#を使うのは今回が初めてです。
あらかじめ保存してあるtxtファイルの中の数字を読んで配列に格納する関数を作っています。
ReadLine を使ってtxtファイルの中身を読んできた後、float型に変換してから配列に格納したいと思いfloat.Parseを使っています。
発生している問題・エラーメッセージ
"Index was outside the bounds of the array"と出ます。
配列まわりで怒られているのはわかるのですが具体的になにが悪いのかわかりません。
エラーメッセージ内のcs:226は後述のソースコードのfloat.Parseの行を指しています。
IndexOutOfRangeException: Index was outside the bounds of the array. AGXUnity_Excavator.Scripts.ExcavatorInputController.ReadFile () (at Assets/AGXUnity_Excavator/AGXUnity_Excavator_Assets/Scripts/ExcavatorInputController.cs:226
該当のソースコード
c#
1public string boomin ; 2public float[] boominput = new float[150]; 3 4void ReadFile() 5 { 6 using (TextReader tr1 = File.OpenText("../TextData.txt")) 7 { 8 for(int i = 0;i<150;i++) 9 { 10 boomin = tr1.ReadLine(); 11 Debug.Log(boomin); 12 boominput[i] = float.Parse(boomin); 13 } 14 } 15 }
###該当のtxtファイル
0
0
0
0
0
0
0
0
0
0.3
0.3
のような形で1500行ほど続きます
今回のソースコードでは試しに上150個の数字を読んでみています
実行結果
for文の一回目の処理でエラー文を吐いて止まります。
Debug.logの出力はtxtファイルの一行目通りにしっかり0がログに出ますが、その次のfloat.Parseの処理ができないようでエラーがでます。
試したこと
float.Parseの行をコメントアウトすると150行分の数字がしっかりデバックログに表示されるのでreadlineは機能していると思います。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/17 02:27
2020/09/17 02:54
2020/09/17 03:18