質問編集履歴
12
脱字
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
1. この座標値は null にもなり得る予定なので,型はnull許容値型 double? としました.
|
20
20
|
|
21
|
-
値が正しく代入されたか確認する為にUnityのコンソールに全てのxの値を出力した所,~~何も出力されませんでした.~~Null値となっていました.
|
21
|
+
値が正しく代入されたか確認する為にUnityのコンソールに全てのxの値を出力した所,~~何も出力されませんでした.~~**全てが**Null値となってしまいました.
|
22
22
|
|
23
23
|
**追記:また,JSONファイル側のnullを適当な数値に書き換えてnullを含まないJSONファイルを読み込んでも,全てNullとして読み込まれました.**
|
24
24
|
|
11
脱字
test
CHANGED
File without changes
|
test
CHANGED
@@ -320,7 +320,7 @@
|
|
320
320
|
|
321
321
|
調べて見ると,「UnityのJsonUtililyがnull許容値を扱えない」という問題はあったみたいです.
|
322
322
|
|
323
|
-
そもそも今回JSONでデータを読み込もうとする目的は,pythonプログラムで取得した座標をUnityへ送信したく,その際言語間のデータには一旦データをシリアル化する必要があるとの事でJSON形式を採用しました.リアルタイムなので処理は極力高速なものが良いだろうと思い,JsonUtilityを使おうとしている,という経緯でしたが…
|
323
|
+
そもそも今回JSONでデータを読み込もうとする目的は,pythonプログラムで取得した座標をUnityへ送信したく,その際言語間のデータ渡しには一旦データをシリアル化する必要があるとの事でJSON形式を採用しました.リアルタイムなので処理は極力高速なものが良いだろうと思い,JsonUtilityを使おうとしている,という経緯でしたが…
|
324
324
|
|
325
325
|
今後はnull許容型を使わない方法か,JsonUtililyあるいはJSON形式を使わない方法を検討してみる事にします.
|
326
326
|
|
10
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -318,7 +318,13 @@
|
|
318
318
|
|
319
319
|
|
320
320
|
|
321
|
-
調べて見ると,「UnityのJsonUtililyがnull許容値を扱えない」という問題はあったみたいです.
|
321
|
+
調べて見ると,「UnityのJsonUtililyがnull許容値を扱えない」という問題はあったみたいです.
|
322
|
+
|
323
|
+
そもそも今回JSONでデータを読み込もうとする目的は,pythonプログラムで取得した座標をUnityへ送信したく,その際言語間のデータには一旦データをシリアル化する必要があるとの事でJSON形式を採用しました.リアルタイムなので処理は極力高速なものが良いだろうと思い,JsonUtilityを使おうとしている,という経緯でしたが…
|
324
|
+
|
325
|
+
今後はnull許容型を使わない方法か,JsonUtililyあるいはJSON形式を使わない方法を検討してみる事にします.
|
326
|
+
|
327
|
+
|
322
328
|
|
323
329
|
|
324
330
|
|
9
Debug.Log("pos1 x:"+item.x); →Debug.Log(item.x);に変更して試してみました.
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,21 +14,31 @@
|
|
14
14
|
|
15
15
|
以下の様な,x~z座標値を格納する為のクラス(Coordinateクラスに属するPosition1~4はそれぞれx,y,z座標を複数組持つ)を定義し,空のインスタンスを作成してから,JsonUtility.FromJsonOverwrite により値を上書きしようとしています.
|
16
16
|
|
17
|
+
|
18
|
+
|
17
|
-
|
19
|
+
1. この座標値は null にもなり得る予定なので,型はnull許容値型 double? としました.
|
18
|
-
|
20
|
+
|
19
|
-
値が正しく代入されたか確認する為にUnityのコンソールに全てのxの値を出力した所,何も出力されませんでした.
|
21
|
+
値が正しく代入されたか確認する為にUnityのコンソールに全てのxの値を出力した所,~~何も出力されませんでした.~~Null値となっていました.
|
22
|
+
|
20
|
-
|
23
|
+
**追記:また,JSONファイル側のnullを適当な数値に書き換えてnullを含まないJSONファイルを読み込んでも,全てNullとして読み込まれました.**
|
21
|
-
|
22
|
-
|
24
|
+
|
25
|
+
|
26
|
+
|
23
|
-
|
27
|
+
2. 試しに,メンバ変数x,y,zの型を通常の double としてみると,JSONで null となっている部分は0に変換されて読み込まれ,それ以外の数値は正常に読み込まれました.
|
28
|
+
|
29
|
+
|
30
|
+
|
24
|
-
|
31
|
+
**以上の事から,恐らくJsonUtilityとnull許容値型との相性が悪いのではないかと思われます.**
|
25
|
-
|
26
|
-
|
32
|
+
|
33
|
+
|
34
|
+
|
27
|
-
|double?型 とした時|double型 とした時|
|
35
|
+
|1.double?型 とした時|2.double型 とした時|
|
28
36
|
|
29
37
|
|:--:|:--:|
|
30
38
|
|
39
|
+
|全てnullとなる.**また,JSONファイルでnull値になっている部分を通常の数値に書き換えても全ても同じ.**|JSONで null の部分は0に変換され,それ以外の数値は正常に読み込まれる.|
|
40
|
+
|
31
|
-
|![
|
41
|
+
|![イメージ説明](9bcb2d775281b89dec8481e6ba16ddfc.png)|![イメージ説明](edf31b6f3e7ac8f85f2f56415922968c.png)|
|
32
42
|
|
33
43
|
|
34
44
|
|
@@ -112,7 +122,7 @@
|
|
112
122
|
|
113
123
|
{
|
114
124
|
|
115
|
-
Debug.Log(
|
125
|
+
Debug.Log(item.x);
|
116
126
|
|
117
127
|
}
|
118
128
|
|
@@ -120,7 +130,7 @@
|
|
120
130
|
|
121
131
|
{
|
122
132
|
|
123
|
-
Debug.Log(
|
133
|
+
Debug.Log(item.x);
|
124
134
|
|
125
135
|
}
|
126
136
|
|
@@ -128,7 +138,7 @@
|
|
128
138
|
|
129
139
|
{
|
130
140
|
|
131
|
-
Debug.Log(
|
141
|
+
Debug.Log(item.x);
|
132
142
|
|
133
143
|
}
|
134
144
|
|
@@ -136,18 +146,16 @@
|
|
136
146
|
|
137
147
|
{
|
138
148
|
|
139
|
-
Debug.Log(
|
149
|
+
Debug.Log(item.x);
|
140
150
|
|
141
151
|
}
|
142
152
|
|
153
|
+
void Update()
|
154
|
+
|
155
|
+
{
|
156
|
+
|
143
157
|
}
|
144
158
|
|
145
|
-
void Update()
|
146
|
-
|
147
|
-
{
|
148
|
-
|
149
|
-
}
|
150
|
-
|
151
159
|
}
|
152
160
|
|
153
161
|
}
|
@@ -310,8 +318,18 @@
|
|
310
318
|
|
311
319
|
|
312
320
|
|
313
|
-
|
321
|
+
調べて見ると,「UnityのJsonUtililyがnull許容値を扱えない」という問題はあったみたいです.null許容型を使わない方法か,JsonUtililyあるいはJSON形式を使わない方法を試してみます.
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
[Unity5.3でJsonを扱うまとめ - Qiit](https://qiita.com/toRisouP/items/53be639f267da8845a42)
|
314
326
|
|
315
327
|
> null許容型は値が定義されていようが全てnullになってしまうみたいです
|
316
328
|
|
329
|
+
|
330
|
+
|
331
|
+
[JSON Utility creates empty classes instead of null
|
332
|
+
|
317
|
-
|
333
|
+
](https://forum.unity.com/threads/json-utility-creates-empty-classes-instead-of-null.471047/)
|
334
|
+
|
335
|
+
> null serialized classes will get filled out with default values when you deserialize them.
|
8
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -303,3 +303,15 @@
|
|
303
303
|
|
304
304
|
|
305
305
|
宜しくお願い致します.
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
### 追記
|
310
|
+
|
311
|
+
|
312
|
+
|
313
|
+
以下のサイトにこの問題に関する記載と,解決策の提示があったので試してみようと思います.
|
314
|
+
|
315
|
+
> null許容型は値が定義されていようが全てnullになってしまうみたいです
|
316
|
+
|
317
|
+
[Unity5.3でJsonを扱うまとめ - Qiit](https://qiita.com/toRisouP/items/53be639f267da8845a42)
|
7
語彙が違った
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【Unity C#】null許容型変数に JsonUtilityでJSONから値を読み込めない
|
1
|
+
【Unity C#】null許容値型変数に JsonUtilityでJSONから値を読み込めない
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
UnityのC#でJsonUtilityを使用して,null許容型の変数にJSON形式のデータから値を読み込みたいです.
|
7
|
+
UnityのC#でJsonUtilityを使用して,null許容値型の変数にJSON形式のデータから値を読み込みたいです.
|
8
8
|
|
9
9
|
|
10
10
|
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
以下の様な,x~z座標値を格納する為のクラス(Coordinateクラスに属するPosition1~4はそれぞれx,y,z座標を複数組持つ)を定義し,空のインスタンスを作成してから,JsonUtility.FromJsonOverwrite により値を上書きしようとしています.
|
16
16
|
|
17
|
-
- この座標値は null にもなり得る予定なので,型はnull許容型 double? としました.
|
17
|
+
- この座標値は null にもなり得る予定なので,型はnull許容値型 double? としました.
|
18
18
|
|
19
19
|
値が正しく代入されたか確認する為にUnityのコンソールに全てのxの値を出力した所,何も出力されませんでした.
|
20
20
|
|
@@ -70,7 +70,7 @@
|
|
70
70
|
|
71
71
|
[System.Serializable] public class Position1
|
72
72
|
|
73
|
-
{ //null許容型にすると値が一切読み込まれない
|
73
|
+
{ //null許容値型にすると値が一切読み込まれない
|
74
74
|
|
75
75
|
//通常のdouble型にするとJSONで数値になっている部分は正常に読み込まれ,nullになっている所は0として読み込まれる
|
76
76
|
|
6
載せたjsonファイルを間違えた
test
CHANGED
File without changes
|
test
CHANGED
@@ -174,7 +174,7 @@
|
|
174
174
|
|
175
175
|
{
|
176
176
|
|
177
|
-
"x": 15523,
|
177
|
+
"x": -15523.5600045,
|
178
178
|
|
179
179
|
"y": 555,
|
180
180
|
|
5
クラスについての説明を分かりやすくした
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
-
以下の様なx~z座標値を格納する為のクラスを定義し,空のインスタンスを作成してから,JsonUtility.FromJsonOverwrite により値を上書きしようとしています.
|
15
|
+
以下の様な,x~z座標値を格納する為のクラス(Coordinateクラスに属するPosition1~4はそれぞれx,y,z座標を複数組持つ)を定義し,空のインスタンスを作成してから,JsonUtility.FromJsonOverwrite により値を上書きしようとしています.
|
16
16
|
|
17
17
|
- この座標値は null にもなり得る予定なので,型はnull許容型 double? としました.
|
18
18
|
|
4
定義したクラスについての説明が間違っていた
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
-
[System.Serializable] public class Coordinate //
|
57
|
+
[System.Serializable] public class Coordinate //Position1~4について,複数組のx,y,z座標値を格納したい
|
58
58
|
|
59
59
|
{
|
60
60
|
|
3
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
- この座標値は null にもなり得る予定なので,型はnull許容型 double? としました.
|
18
18
|
|
19
|
-
値が正しく代入されたか確認する為にUnityのコンソールに全ての
|
19
|
+
値が正しく代入されたか確認する為にUnityのコンソールに全てのxの値を出力した所,何も出力されませんでした.
|
20
20
|
|
21
21
|
|
22
22
|
|
2
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
-
以下の様な
|
15
|
+
以下の様なx~z座標値を格納する為のクラスを定義し,空のインスタンスを作成してから,JsonUtility.FromJsonOverwrite により値を上書きしようとしています.
|
16
16
|
|
17
17
|
- この座標値は null にもなり得る予定なので,型はnull許容型 double? としました.
|
18
18
|
|
1
微修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -72,7 +72,7 @@
|
|
72
72
|
|
73
73
|
{ //null許容型にすると値が一切読み込まれない
|
74
74
|
|
75
|
-
//通常の
|
75
|
+
//通常のdouble型にするとJSONで数値になっている部分は正常に読み込まれ,nullになっている所は0として読み込まれる
|
76
76
|
|
77
77
|
public double? x;
|
78
78
|
|