Skip to content

Commit 6cc842f

Browse files
authored
fix code-gen of Unity Object. (#28)
* fix code-gen of Unity Object. * fix derived check of arrays * update version
1 parent 4c210f9 commit 6cc842f

16 files changed

+307
-11
lines changed

Assets/Samples/AnySample.asset

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!114 &11400000
4+
MonoBehaviour:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
m_GameObject: {fileID: 0}
10+
m_Enabled: 1
11+
m_EditorHideFlags: 0
12+
m_Script: {fileID: 11500000, guid: 2f56aa5098ed4f9a9670252111ef2b8a, type: 3}
13+
m_Name: AnySample
14+
m_EditorClassIdentifier:
15+
<Array2>k__BackingField:
16+
_value:
17+
- _value: 020000000200000003000000
18+
- _value: 04000000

Assets/Samples/AnySample.asset.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Samples/AnyScriptableObject.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using UnityEngine;
2+
3+
namespace AnySerialize
4+
{
5+
[CreateAssetMenu(fileName = "AnySample", menuName = "AnySample", order = 0)]
6+
public class AnyScriptableObject : ScriptableObject
7+
{
8+
[AnySerialize] public int[][] Array2 { get; }
9+
}
10+
}

Assets/Samples/AnyScriptableObject.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!1 &1368275843096587868
4+
GameObject:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
serializedVersion: 6
10+
m_Component:
11+
- component: {fileID: 1368275843096587866}
12+
- component: {fileID: 1368275843096587869}
13+
m_Layer: 0
14+
m_Name: ReadOnlyUnityObject
15+
m_TagString: Untagged
16+
m_Icon: {fileID: 0}
17+
m_NavMeshLayer: 0
18+
m_StaticEditorFlags: 0
19+
m_IsActive: 1
20+
--- !u!4 &1368275843096587866
21+
Transform:
22+
m_ObjectHideFlags: 0
23+
m_CorrespondingSourceObject: {fileID: 0}
24+
m_PrefabInstance: {fileID: 0}
25+
m_PrefabAsset: {fileID: 0}
26+
m_GameObject: {fileID: 1368275843096587868}
27+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28+
m_LocalPosition: {x: 0, y: 0, z: 0}
29+
m_LocalScale: {x: 1, y: 1, z: 1}
30+
m_ConstrainProportionsScale: 0
31+
m_Children: []
32+
m_Father: {fileID: 0}
33+
m_RootOrder: 0
34+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
35+
--- !u!114 &1368275843096587869
36+
MonoBehaviour:
37+
m_ObjectHideFlags: 0
38+
m_CorrespondingSourceObject: {fileID: 0}
39+
m_PrefabInstance: {fileID: 0}
40+
m_PrefabAsset: {fileID: 0}
41+
m_GameObject: {fileID: 1368275843096587868}
42+
m_Enabled: 1
43+
m_EditorHideFlags: 0
44+
m_Script: {fileID: 11500000, guid: 2650d21c5c31644e2b0b7b5e812a8ae3, type: 3}
45+
m_Name:
46+
m_EditorClassIdentifier:
47+
<GameObject>k__BackingField:
48+
_value: {fileID: 0}
49+
<ScriptableObject>k__BackingField:
50+
_value: {fileID: 11400000, guid: 1b92c7668bdcf441dae789c76ebb9917, type: 2}
51+
<AnimationCurve>k__BackingField:
52+
_value:
53+
serializedVersion: 2
54+
m_Curve:
55+
- serializedVersion: 3
56+
time: 0
57+
value: 0
58+
inSlope: 0
59+
outSlope: 0
60+
tangentMode: 0
61+
weightedMode: 0
62+
inWeight: 0
63+
outWeight: 0
64+
- serializedVersion: 3
65+
time: 1
66+
value: 1
67+
inSlope: 2
68+
outSlope: 2
69+
tangentMode: 0
70+
weightedMode: 0
71+
inWeight: 0
72+
outWeight: 0
73+
m_PreInfinity: 2
74+
m_PostInfinity: 2
75+
m_RotationOrder: 4
76+
<GameObjectArray2>k__BackingField:
77+
_value:
78+
- _value:
79+
- {fileID: 0}
80+
- {fileID: 0}
81+
- _value:
82+
- {fileID: 0}
83+
- {fileID: 0}
84+
- {fileID: 0}

Assets/Samples/ReadOnlyUnityObject.prefab.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using System.Linq;
2+
using UnityEngine;
3+
4+
namespace AnySerialize
5+
{
6+
public class ReadOnlyUnityObjects : MonoBehaviour
7+
{
8+
[AnySerialize] public GameObject GameObject { get; }
9+
[AnySerialize] public AnyScriptableObject ScriptableObject { get; }
10+
[AnySerialize] public AnimationCurve AnimationCurve { get; }
11+
[AnySerialize] public GameObject[][] GameObjectArray2 { get; }
12+
13+
private void Awake()
14+
{
15+
Debug.Log($"-------------------------{GetType().Name}---------------------------");
16+
Debug.Log($"{nameof(GameObject)} = {GameObject.name}");
17+
Debug.Log($"{nameof(ScriptableObject)} = {ScriptableObject.name}");
18+
Debug.Log($"{nameof(AnimationCurve)} = {AnimationCurve.length}");
19+
Debug.Log($"{nameof(GameObjectArray2)} = {string.Join(",", GameObjectArray2.SelectMany(arr => arr).Select(obj => obj.name))}");
20+
}
21+
}
22+
}

Assets/Samples/ReadOnlyUnityObjects.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Samples/SampleScene.unity

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,87 @@ Transform:
207207
m_Father: {fileID: 0}
208208
m_RootOrder: 0
209209
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
210+
--- !u!1001 &1368275844012390366
211+
PrefabInstance:
212+
m_ObjectHideFlags: 0
213+
serializedVersion: 2
214+
m_Modification:
215+
m_TransformParent: {fileID: 0}
216+
m_Modifications:
217+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
218+
propertyPath: m_RootOrder
219+
value: 8
220+
objectReference: {fileID: 0}
221+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
222+
propertyPath: m_LocalPosition.x
223+
value: 0
224+
objectReference: {fileID: 0}
225+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
226+
propertyPath: m_LocalPosition.y
227+
value: 0
228+
objectReference: {fileID: 0}
229+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
230+
propertyPath: m_LocalPosition.z
231+
value: 0
232+
objectReference: {fileID: 0}
233+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
234+
propertyPath: m_LocalRotation.w
235+
value: 1
236+
objectReference: {fileID: 0}
237+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
238+
propertyPath: m_LocalRotation.x
239+
value: 0
240+
objectReference: {fileID: 0}
241+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
242+
propertyPath: m_LocalRotation.y
243+
value: 0
244+
objectReference: {fileID: 0}
245+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
246+
propertyPath: m_LocalRotation.z
247+
value: 0
248+
objectReference: {fileID: 0}
249+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
250+
propertyPath: m_LocalEulerAnglesHint.x
251+
value: 0
252+
objectReference: {fileID: 0}
253+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
254+
propertyPath: m_LocalEulerAnglesHint.y
255+
value: 0
256+
objectReference: {fileID: 0}
257+
- target: {fileID: 1368275843096587866, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
258+
propertyPath: m_LocalEulerAnglesHint.z
259+
value: 0
260+
objectReference: {fileID: 0}
261+
- target: {fileID: 1368275843096587868, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
262+
propertyPath: m_Name
263+
value: ReadOnlyUnityObject
264+
objectReference: {fileID: 0}
265+
- target: {fileID: 1368275843096587869, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
266+
propertyPath: <GameObject>k__BackingField._value
267+
value:
268+
objectReference: {fileID: 519420028}
269+
- target: {fileID: 1368275843096587869, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
270+
propertyPath: <GameObjectArray2>k__BackingField._value.Array.data[0]._value.Array.data[0]
271+
value:
272+
objectReference: {fileID: 2626762927139789214}
273+
- target: {fileID: 1368275843096587869, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
274+
propertyPath: <GameObjectArray2>k__BackingField._value.Array.data[0]._value.Array.data[1]
275+
value:
276+
objectReference: {fileID: 4986915765951790083}
277+
- target: {fileID: 1368275843096587869, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
278+
propertyPath: <GameObjectArray2>k__BackingField._value.Array.data[1]._value.Array.data[0]
279+
value:
280+
objectReference: {fileID: 7517629769578981476}
281+
- target: {fileID: 1368275843096587869, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
282+
propertyPath: <GameObjectArray2>k__BackingField._value.Array.data[1]._value.Array.data[1]
283+
value:
284+
objectReference: {fileID: 2524570287624052648}
285+
- target: {fileID: 1368275843096587869, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
286+
propertyPath: <GameObjectArray2>k__BackingField._value.Array.data[1]._value.Array.data[2]
287+
value:
288+
objectReference: {fileID: 2765497031502449746}
289+
m_RemovedComponents: []
290+
m_SourcePrefab: {fileID: 100100000, guid: d63debd815e7f404ca7213f06c4e4cce, type: 3}
210291
--- !u!1001 &2524570287624052647
211292
PrefabInstance:
212293
m_ObjectHideFlags: 0
@@ -264,6 +345,11 @@ PrefabInstance:
264345
objectReference: {fileID: 0}
265346
m_RemovedComponents: []
266347
m_SourcePrefab: {fileID: 100100000, guid: 0faf2a8a99692cf46ae74ea57f0cd312, type: 3}
348+
--- !u!1 &2524570287624052648 stripped
349+
GameObject:
350+
m_CorrespondingSourceObject: {fileID: 1266861739863340688, guid: 0faf2a8a99692cf46ae74ea57f0cd312, type: 3}
351+
m_PrefabInstance: {fileID: 2524570287624052647}
352+
m_PrefabAsset: {fileID: 0}
267353
--- !u!1001 &2626762927139789213
268354
PrefabInstance:
269355
m_ObjectHideFlags: 0
@@ -321,6 +407,11 @@ PrefabInstance:
321407
objectReference: {fileID: 0}
322408
m_RemovedComponents: []
323409
m_SourcePrefab: {fileID: 100100000, guid: 104ef08d01f37024b97e4a63fc15cee5, type: 3}
410+
--- !u!1 &2626762927139789214 stripped
411+
GameObject:
412+
m_CorrespondingSourceObject: {fileID: 2626762927457472157, guid: 104ef08d01f37024b97e4a63fc15cee5, type: 3}
413+
m_PrefabInstance: {fileID: 2626762927139789213}
414+
m_PrefabAsset: {fileID: 0}
324415
--- !u!1001 &2765497031502449745
325416
PrefabInstance:
326417
m_ObjectHideFlags: 0
@@ -378,6 +469,11 @@ PrefabInstance:
378469
objectReference: {fileID: 0}
379470
m_RemovedComponents: []
380471
m_SourcePrefab: {fileID: 100100000, guid: 84b605a26b44cb44189fb5d73e5d9644, type: 3}
472+
--- !u!1 &2765497031502449746 stripped
473+
GameObject:
474+
m_CorrespondingSourceObject: {fileID: 8606595429830677114, guid: 84b605a26b44cb44189fb5d73e5d9644, type: 3}
475+
m_PrefabInstance: {fileID: 2765497031502449745}
476+
m_PrefabAsset: {fileID: 0}
381477
--- !u!1001 &4944044897203718766
382478
PrefabInstance:
383479
m_ObjectHideFlags: 0
@@ -492,6 +588,11 @@ PrefabInstance:
492588
objectReference: {fileID: 0}
493589
m_RemovedComponents: []
494590
m_SourcePrefab: {fileID: 100100000, guid: 0365f4c44156f934eb0c3560b9d1d4e8, type: 3}
591+
--- !u!1 &4986915765951790083 stripped
592+
GameObject:
593+
m_CorrespondingSourceObject: {fileID: 4986915765763396050, guid: 0365f4c44156f934eb0c3560b9d1d4e8, type: 3}
594+
m_PrefabInstance: {fileID: 4986915765951790082}
595+
m_PrefabAsset: {fileID: 0}
495596
--- !u!1001 &7517629769578981475
496597
PrefabInstance:
497598
m_ObjectHideFlags: 0
@@ -549,6 +650,11 @@ PrefabInstance:
549650
objectReference: {fileID: 0}
550651
m_RemovedComponents: []
551652
m_SourcePrefab: {fileID: 100100000, guid: 14daa528f3968cb42ae6409ddd3daca9, type: 3}
653+
--- !u!1 &7517629769578981476 stripped
654+
GameObject:
655+
m_CorrespondingSourceObject: {fileID: 7517629770195064582, guid: 14daa528f3968cb42ae6409ddd3daca9, type: 3}
656+
m_PrefabInstance: {fileID: 7517629769578981475}
657+
m_PrefabAsset: {fileID: 0}
552658
--- !u!1001 &7557180844347288526
553659
PrefabInstance:
554660
m_ObjectHideFlags: 0

Assets/Tests/AnySerialize/TestDefaultTypeSearcher.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,25 @@ public void should_find_replace_type_for_lazy_type()
9898
{
9999
AssertTypeEqual<ReadOnlyAnyLazy<int, AnyValue_Int32>>(SearchReadOnly<Lazy<int>>());
100100
}
101+
102+
#if UNITY_EDITOR
103+
[Test]
104+
public void should_find_replace_type_for_gameobject()
105+
{
106+
AssertTypeEqual<AnyValue_Object<UnityEngine.GameObject>>(SearchReadOnly<UnityEngine.GameObject>());
107+
}
108+
109+
[Test]
110+
public void should_find_replace_type_for_gameobject_array()
111+
{
112+
AssertTypeEqual<AnyArray_Object<UnityEngine.GameObject>>(SearchReadOnly<UnityEngine.GameObject[]>());
113+
}
114+
115+
[Test]
116+
public void should_find_replace_type_for_gameobject_array2()
117+
{
118+
AssertTypeEqual<ReadOnlyAnyArray<UnityEngine.GameObject[], AnyArray_Object<UnityEngine.GameObject>>>(SearchReadOnly<UnityEngine.GameObject[][]>());
119+
}
120+
#endif
101121
}
102122
}

0 commit comments

Comments
 (0)