質問編集履歴

1

現状の回避方法を追記しました

2020/12/14 09:16

投稿

honjoriki
honjoriki

スコア81

test CHANGED
@@ -1 +1 @@
1
- JsonUtility.ToJson() でシリアライズしたクラス配列に初期値が入る問題に関
1
+ JsonUtility.ToJson() でシリアライズしたクラス配列に初期値が入る問題を回避たい
test CHANGED
@@ -217,3 +217,41 @@
217
217
  # 開発環境
218
218
 
219
219
  - Unity 2019.4.15f
220
+
221
+
222
+
223
+ # 現状の回避方法
224
+
225
+ ```
226
+
227
+ // 配列をJSONに変更(外部にデータ保存のため)
228
+
229
+ public void ConvertToJson()
230
+
231
+ {
232
+
233
+ string json = JsonUtility.ToJson(ItemManager.Instance);
234
+
235
+ Debug.Log(json);
236
+
237
+
238
+
239
+ // 現状の回避方法として、配列要素が初期値になっていたら
240
+
241
+ // nullにするという方法をとっていますが、そのためにこの処理を追加するのもつらいです
242
+
243
+ for(int i = 0; i < itemDataArray.Length; i++) {
244
+
245
+ if(itemDataArray[i].NAME == null) {
246
+
247
+ itemDataArray[i] = null;
248
+
249
+ }
250
+
251
+ }
252
+
253
+ }
254
+
255
+
256
+
257
+ ```