Unityで、以下のプログラムを実行すると、Unityがフリーズしてしまい、困っています。
###C#プログラム
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5using System.IO; 6using System; 7using Random = System.Random; 8 9public class G4B_2020_01_15 : MonoBehaviour 10{ 11 public InputField i_p; 12 public Text t_x; 13 public Text seikaisuu; 14 public Text K_O; 15 int QN;//random専用値 16 bool hantei = false; 17 int RN = 0;//正解数管理 18 public int FN = 10;//メモ帳の行数管理 19 int US;//値を一時保存する変数 20 public Text US1,US2;//問題を一時保存する変数 21 22 // Start is called before the first frame update 23 void Start() 24 { 25 //コンポーネントを扱えるようにする 26 i_p = i_p.GetComponent<InputField>(); 27 t_x = t_x.GetComponent<Text>(); 28 US1 = US1.GetComponent<Text>(); 29 US2 = US2.GetComponent<Text>(); 30 //seikaisuu = seikaisuu.GetComponent<Seikaisuu>(); 31 //t_t = t_t.GetComponent<t_t>(); 32 NS(); 33 34 } 35 36 private void NS() 37 { 38 System.Random random = new Random(); 39 40 41 if (FN < 1)//もし、問題数が3なら、2と記述。 42 { 43 //終了合図 44 t_x.text = "正解数は、" + RN; 45 K_O.text = "右下のTOPボタンでホームへ。"; 46 } 47 else 48 { 49 //*************** 50 QN = random.Next(0, FN++)/*0~11未満の値*/; 51 Debug.Log(QN); 52 US = QN; 53 while (hantei == false) 54 { 55 File.ReadLines(@"C:\Users\SK\Desktop\g2_b.txt"); 56 File.ReadLines(@"C:\Users\SK\Desktop\g2_ba.txt"); 57 QN--; 58 if(hantei == true) 59 { 60 File.AppendAllText(@"C:\Users\SK\Desktop\g2_b.txt", ""); 61 File.AppendAllText(@"C:\Users\SK\Desktop\g2_ba.txt", ""); 62 } 63 } 64 //*************** 65 t_x.text = "どういう意味?:" + File.ReadLines(@"C:\Users\SK\Desktop\g2_b.txt"); 66 US1.text = (@"C:\Users\SK\Desktop\g2_b.txt"); 67 US2.text = (@"C:\Users\SK\Desktop\g2_ba.txt"); 68 } 69 70 71 } 72 73 74 public void IT() 75 { 76 K_O.text = "正しい答え:" + File.ReadLines(@"C:\Users\SK\Desktop\g2_ba.txt"); 77 //解答が模範解答と同じだった時の処理 78 if (US2.text == i_p.text) 79 { 80 RN++; 81 Debug.Log("できた"); 82 Invoke("NS", 3); 83 FN++; 84 i_p.text = ""; 85 } 86 else 87 { 88 Invoke("NS", 3); 89 FN++; 90 i_p.text = ""; 91 } 92 /*if (ET.Length > 0) 93 { 94 //QN++; 95 ET[QN].Remove(QN); 96 EA[QN].Remove(QN); 97 Invoke("NS", 3); 98 i_p.text = ""; 99 100 //NS(); 101 Debug.Log("Read OK"); 102 }*/ 103 //else 104 } 105 106 /*else 107 {*/ 108 //テキストにi_pの内容を反映 109 //t_x.text = i_p.text; 110 111 // Update is called once per frame 112 void Update() 113 { 114 /*if (QN < 1) 115 { 116 hantei = true; 117 }*/ 118 119 seikaisuu.text = RN + "/10"; 120 121 if (Input.GetKeyDown(KeyCode.Return)) 122 { 123 IT(); 124 } 125 } 126 127} 128 129/*else 130{*/ 131//テキストにi_pの内容を反映 132//t_x.text = i_p.text;
※パスは、一部変更を加えています。
###試したこと
- パソコンの再起動
- Unityの再起動
- Unityの再インストール(←別のバージョンはない)
###確認したこと
- ほかのシーン(上記以外のプログラムがアタッチされている)などは、普通に実行できる。
- 特定のシーン(上記のプログラムがタッチされている)だけ、実行できない。
- 特定のシーン(上記のプログラムがタッチされている)を実行すると、メモリが97%とかになり、応答なしになる。
このような状況です。どうすればよいでしょうか。ご回答お願い致します。
※ちなみに、上記のプログラムで行いたいことは、
テキストファイル(g2_b.txt)からランダムの行から単語を読み込み、US1.text
に一時的に代入し、同じく、テキストファイル(g2_ba.txt)からランダムの行から単語に対する答えを読み込み、US2.text
に一時的に代入し、InputField
で取得した文字とUS2.text
が同じだったら、RN
に+1して、これをテキストファイルの中身がなくなるまで処理を続け、中身がなくなったら、正解数を表示するといった感じです。(パスは、しっかりと確認しました)
実行ができないので、このプログラムがどうなのかわからないので、できれば、こちらのプログラムに関しても何かご指摘いただければと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/24 12:21