質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

2519閲覧

Unityで実行ができない

KS-_-SK

総合スコア39

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/02/24 07:19

編集2020/02/24 07:41

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して、これをテキストファイルの中身がなくなるまで処理を続け、中身がなくなったら、正解数を表示するといった感じです。(パスは、しっかりと確認しました)
実行ができないので、このプログラムがどうなのかわからないので、できれば、こちらのプログラムに関しても何かご指摘いただければと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

とりあえず、フリーズの原因だけ。

C#

1 while (hantei == false) 2 { 3 File.ReadLines(@"C:\Users\SK\Desktop\g2_b.txt"); 4 File.ReadLines(@"C:\Users\SK\Desktop\g2_ba.txt"); 5 QN--; 6 if(hantei == true) 7 { 8 File.AppendAllText(@"C:\Users\SK\Desktop\g2_b.txt", ""); 9 File.AppendAllText(@"C:\Users\SK\Desktop\g2_ba.txt", ""); 10 } 11 }

上記コードの中にhanteitrueにする箇所がどこにもありません。
結果、上記ループから抜け出せず、無限ループでフリーズしていると思うのですが、どうでしょう。

投稿2020/02/24 08:19

編集2020/02/24 08:20
fiveHundred

総合スコア9803

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KS-_-SK

2020/02/24 12:21

できました!!ありがとうございました。 ※プログラムは、思うとおりにできないので、こちらからサポートしてくださると幸いです。 https://teratail.com/questions/243281
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問