質問編集履歴

1

ソースコードの記載、現在の現状について

2020/09/21 17:10

投稿

domekano
domekano

スコア2

test CHANGED
File without changes
test CHANGED
@@ -49,3 +49,141 @@
49
49
  Windows 10
50
50
 
51
51
  Unity 2020.1.6f1 (64-bit)
52
+
53
+
54
+
55
+
56
+
57
+ ### 追記
58
+
59
+ i_zna様の回答を参考に試行錯誤してみましたが、未だに行き詰ってしまっています。
60
+
61
+ 教えていただいた通り、/*問題生成処理*/部分を挟むことでシーンが切り替わっても再度リストを作成しなくはなりましたが、テキストの変更部分まで実行されなくなった為、現在は問題表示の部分で悩んでいます。
62
+
63
+ ソースがない為、アドバイスしてくれようにも分からないと思いましたので、下記にソースも載せます。
64
+
65
+ また、sceneを移動するのではなくSubsceneとして「Result」画面を表示することで解決出来ないかと考えているのですが。
66
+
67
+ 考え方として推奨出来るものでしょうか。
68
+
69
+ 独学でやっている為、こういったプログラムの場合、一般的にどの様に作成するものなのかも可能であればお聞きしたいです。
70
+
71
+ ```C#
72
+
73
+ using System.Collections.Generic;
74
+
75
+ using UnityEngine;
76
+
77
+ using System.IO;
78
+
79
+ using UnityEngine.UI;
80
+
81
+ using System.Collections;
82
+
83
+ using System;
84
+
85
+ using System.Linq;
86
+
87
+
88
+
89
+ public class CSVReader : MonoBehaviour
90
+
91
+ {
92
+
93
+ public TextAsset csvFile;// CSVファイル
94
+
95
+ public Text QuizText;//クイズを表示するテキスト
96
+
97
+ public Text Choices1Text;//選択肢1を表示するテキスト
98
+
99
+ public Text Choices2Text;//選択肢2を表示するテキスト
100
+
101
+ public Text Choices3Text;//選択肢3を表示するテキスト
102
+
103
+ public Text Choices4Text;//選択肢4を表示するテキスト
104
+
105
+ public Text AnserText;//自分の答えを表示するテキスト
106
+
107
+ public Text correctText;//正解を表示するテキスト
108
+
109
+
110
+
111
+
112
+
113
+ public static int s = 0;
114
+
115
+ List<string[]> csvDatas = new List<string[]>(); // CSVの中身を入れるリスト;
116
+
117
+ static bool seiseizumi = false;
118
+
119
+ void Start()
120
+
121
+ {
122
+
123
+ //Random();
124
+
125
+ if (seiseizumi) return;
126
+
127
+
128
+
129
+ //-----------------↓csvファイルを読み込む----------------------------
130
+
131
+ StringReader reader = new StringReader(csvFile.text);
132
+
133
+ while (reader.Peek() != -1) // reader.Peaekが-1になるまで
134
+
135
+ {
136
+
137
+ string line = reader.ReadLine(); // 一行ずつ読み込み
138
+
139
+ csvDatas.Add(line.Split(',')); // , 区切りでリストに追加
140
+
141
+ }
142
+
143
+ //-----------------↑csvファイルを読み込む----------------------------
144
+
145
+ //-----------------↓ランダムで重複しないリスト作成----------------------------
146
+
147
+ List<int> List1 = Enumerable.Range(0, csvDatas.Count)
148
+
149
+
150
+
151
+ .OrderBy(x => System.Guid.NewGuid()) //ランダムで並び替え
152
+
153
+
154
+
155
+ .Take(csvDatas.Count)
156
+
157
+
158
+
159
+ .ToList();
160
+
161
+ //-----------------↑ランダムで重複しないリスト作成----------------------------
162
+
163
+
164
+
165
+ //-----------------↓UIテキストに反映----------------------------
166
+
167
+ QuizText.text = csvDatas[List1[s]][0];
168
+
169
+ Choices1Text.text = csvDatas[List1[s]][1];
170
+
171
+ Choices2Text.text = csvDatas[List1[s]][2];
172
+
173
+ Choices3Text.text = csvDatas[List1[s]][3];
174
+
175
+ Choices4Text.text = csvDatas[List1[s]][4];
176
+
177
+ correctText.text = csvDatas[List1[s]][5];
178
+
179
+ //-----------------↑UIテキストに反映----------------------------
180
+
181
+   seiseizumi = true;
182
+
183
+
184
+
185
+ }
186
+
187
+ }
188
+
189
+ ```