質問編集履歴

1

タイトルの変更,本文の追記修正,コードの追加

2020/05/09 02:50

投稿

tuna-uniko
tuna-uniko

スコア10

test CHANGED
@@ -1 +1 @@
1
- ボタンを押したタイミングを配列で記録し、Jsonファイルとして出力した
1
+ ボタンを押したタイミングを記録した配列が、Jsonファイル出力されな
test CHANGED
@@ -1,6 +1,6 @@
1
- 以下のコードを使用し、ボタンを押したタイミングを配列化しJsonファイル書き込み、出力行うシステムを作成しているのですが、どうもJsonファイルへ出力する時配列内の数字が読み込めてないような挙動をししまいます。
1
+ Jsonに配列を出力する方法について質問です。
2
2
 
3
- 以下のコードではOnClick()でtapのタグが付いたボタンを押すたびに配列内へそのタイミングを記録し、配列の大きさを1つ大きくることをしています。そしてFinishのタグが付いたボタンを押すとタイミングが配列されたJsonファイルが出力される仕組みです。しか出力したところ以下の結果になりました。
3
+ 以下のコードではOnClick()でtapのタグが付いたボタンを押すたびに配列内へそのタイミングを記録し、配列の大きさを1つ増やリサイズの処理をしています。そしてFinishのタグが付いたボタンを押すとタイミングが"soundscore"に配列形式で記録されたJsonファイルが出力される仕組みです。これを譜面データとて利用したいのですが、試しに31回tapボタンを押して出力したところ以下の結果になりました。
4
4
 
5
5
  ```Json
6
6
 
@@ -8,13 +8,19 @@
8
8
 
9
9
  ```
10
10
 
11
- のため確認用にfor文を利用配列入っている数値をコンソール表示させたところ初期化に使用した数字しか出力され配列soundscore[]に数値が正しく入っていないのではないかと考えす。
11
+ 何度か修正を繰り返したとろ、Makerクラス内で宣言配列soundscore[2]が値が入っていない状態そのままで書き出しに使用され、mk.soundscore[i]そのものを参照できていないのではないかという考えにたどり着きました。そこで、i回分クリックしたタイミングのデータを格納したmk.soundscore[i]のデータをどのような処理を使えばJsonファイルへ書き出せるか知りたす。
12
12
 
13
13
 
14
14
 
15
15
  目指していること
16
16
 
17
- Jsonファイルを出力した時、ボタンを押したタイミングが回数分きちんと配列として書き出されている状態
17
+ Jsonファイルを出力した時、ボタンを押したタイミングが回数分きちんとファイル内に反映される(以下の状態が理想の力で、mk.soundscore[0]などにそれぞれ格納されているfloat型の数値が入ります)
18
+
19
+ ```Json
20
+
21
+ {"soundscore":[mk.soundscore[0],mk.soundscore[1]・・・mk.soundscore[i]]}
22
+
23
+ ```
18
24
 
19
25
 
20
26
 
@@ -128,6 +134,8 @@
128
134
 
129
135
  File.WriteAllText("Assets\testj", json);
130
136
 
137
+ //読み込みの確認用 start()内で指定した数値しか返らない
138
+
131
139
  int u;
132
140
 
133
141
  for (u = 0; u < i; u++)
@@ -157,11 +165,3 @@
157
165
  使用環境
158
166
 
159
167
  Unity2019,1,5f1 C#のみ使用しています
160
-
161
-
162
-
163
- その他
164
-
165
- ボタンを押したときにはコンソールにタイミングがきちんと出力されています。
166
-
167
- 上の方で配列の大きさを指定していますが、こうしないと「配列の中身空っぽやで」とエラーが出てしまうためです。