前提・実現したいこと
C#でResourcesにあるtestCSVというファイルを読み込みその値によってアニメーションさせようとしています。
その値を読み込み2秒間その値によって動作を繰り返す。その後csvファイルの次の行を読み込み、その値に応じて2秒間繰り返すプログラムを書いているつもりです。
コンパイルはできています。
csvファイルの中身は
2
1
2
0
1
です。
発生している問題・エラーメッセージ
unityが動作しない。(プログラムによる負担が大きすぎる?)
該当のソースコード
C#
1void Update() 2 { 3 double t = Math.Sin(Time.time * Math.PI); // [-1, 1] 4 double s = (t + 1) / 2; // [0, 1] 5 6 var sw = new System.Diagnostics.Stopwatch(); 7 8 9 10 11 csvFile = Resources.Load("testCSV") as TextAsset; // Resouces下のCSV読み込み 12 StringReader reader = new StringReader(csvFile.text); 13 14 // , で分割しつつ一行ずつ読み込み 15 while (reader.Peek() > -1) // reader.Peaekが0になるまで繰り返す 16 { 17 string line = reader.ReadLine(); // 一行ずつ読み込み 18 a = int.Parse(line); 19 height++; // 行数加算 20 Debug.Log(a); 21 22 sw.Start();//時間を測り始める 23 24 25 if (a == 0) 26 { 27 sw.Stop();//一回時間を止める 28 TimeSpan ts = sw.Elapsed;//ここでstop-startの時間をとる。ts.Sceondsで何秒かわかる 29 while (ts.Seconds < 2000) 30 { 31 //a==0のときの動作 32 sw.Stop(); 33 ts = sw.Elapsed; 34 } 35 break; 36 } 37 38 if (a == 1) 39 { 40 sw.Stop(); 41 TimeSpan ts = sw.Elapsed; 42 while (ts.Seconds < 2000) 43 { 44 //a==1のときの動作 45 sw.Stop(); 46 ts = sw.Elapsed; 47 } 48 break; 49 50 } 51 52 if (a == 2) 53 { 54 sw.Stop(); 55 TimeSpan ts = sw.Elapsed; 56 while (ts.Seconds < 2000) 57 { 58 //a==2のときの動作 59 sw.Stop(); 60 ts = sw.Elapsed; 61 } 62 break; 63 64 } 65 } 66 } 67
色々しらべてこのプログラムに行きついたのですが、どこでunityが動かないほどの処理が書かれてしまっているのがわかりません。何がまずいのでしょうか?またもっと簡単な書き方はありますでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/10 13:33