@@ -60,41 +60,54 @@ public void TestStaticHelpers()
60
60
61
61
// Test CopyComponents
62
62
{
63
- var a = new GameObject ( "a" ) ;
64
- var b = new GameObject ( "b" ) ;
63
+ var a = GameObject . CreatePrimitive ( PrimitiveType . Cube ) ;
64
+ a . name = "a" ;
65
+ var b = GameObject . CreatePrimitive ( PrimitiveType . Sphere ) ;
66
+ b . name = "b" ;
65
67
a . AddComponent < BoxCollider > ( ) ;
66
68
a . transform . localPosition += new Vector3 ( 1 , 2 , 3 ) ;
67
69
Assert . IsFalse ( b . GetComponent < BoxCollider > ( ) ) ;
68
70
Assert . AreEqual ( Vector3 . zero , b . transform . localPosition ) ;
69
- ConvertToModel . CopyComponents ( a , b ) ;
70
- Assert . IsTrue ( b . GetComponent < BoxCollider > ( ) ) ;
71
- Assert . AreEqual ( new Vector3 ( 1 , 2 , 3 ) , b . transform . localPosition ) ;
71
+ Assert . AreNotEqual ( a . GetComponent < MeshFilter > ( ) . sharedMesh , b . GetComponent < MeshFilter > ( ) . sharedMesh ) ;
72
+ ConvertToModel . CopyComponents ( b , a ) ;
73
+ Assert . IsFalse ( b . GetComponent < BoxCollider > ( ) ) ;
74
+ Assert . AreEqual ( Vector3 . zero , b . transform . localPosition ) ;
75
+ Assert . AreEqual ( a . GetComponent < MeshFilter > ( ) . sharedMesh , b . GetComponent < MeshFilter > ( ) . sharedMesh ) ;
72
76
}
73
77
74
- // Test SetupImportedGameObject . Very similar but recursive.
78
+ // Test UpdateFromSourceRecursive . Very similar but recursive.
75
79
{
76
- var a = new GameObject ( "a" ) ;
77
- var a1 = new GameObject ( "AA" ) ;
78
- var a2 = new GameObject ( "BB" ) ;
80
+ var a = GameObject . CreatePrimitive ( PrimitiveType . Cube ) ;
81
+ a . name = "a" ;
82
+ var a1 = GameObject . CreatePrimitive ( PrimitiveType . Cube ) ;
83
+ a1 . name = "AA" ;
84
+ var a2 = GameObject . CreatePrimitive ( PrimitiveType . Cube ) ;
85
+ a2 . name = "BB" ;
79
86
a2 . transform . parent = a . transform ;
80
87
a1 . transform . parent = a . transform ; // out of alpha order!
81
- var b = new GameObject ( "b" ) ;
82
- var b1 = new GameObject ( "AA" ) ;
83
- var b2 = new GameObject ( "BB" ) ;
88
+ var b = GameObject . CreatePrimitive ( PrimitiveType . Sphere ) ;
89
+ b . name = "b" ;
90
+ var b1 = GameObject . CreatePrimitive ( PrimitiveType . Sphere ) ;
91
+ b1 . name = "AA" ;
92
+ var b2 = GameObject . CreatePrimitive ( PrimitiveType . Sphere ) ;
93
+ b2 . name = "BB" ;
84
94
b1 . transform . parent = b . transform ;
85
95
b2 . transform . parent = b . transform ; // in alpha order
86
96
a . AddComponent < BoxCollider > ( ) ;
87
97
a1 . transform . localPosition = new Vector3 ( 1 , 2 , 3 ) ;
88
98
99
+ Assert . AreNotEqual ( b . GetComponent < MeshFilter > ( ) . sharedMesh , a . GetComponent < MeshFilter > ( ) . sharedMesh ) ;
89
100
Assert . IsFalse ( b . GetComponent < BoxCollider > ( ) ) ;
90
101
Assert . AreEqual ( "BB" , b . transform . GetChild ( 1 ) . name ) ;
91
102
Assert . AreEqual ( Vector3 . zero , b1 . transform . localPosition ) ;
92
103
93
- ConvertToModel . UpdateFromSourceRecursive ( a , b ) ;
104
+ ConvertToModel . UpdateFromSourceRecursive ( b , a ) ;
94
105
95
- Assert . IsTrue ( b . GetComponent < BoxCollider > ( ) ) ;
96
- Assert . AreEqual ( "AA" , b . transform . GetChild ( 1 ) . name ) ;
97
- Assert . AreEqual ( new Vector3 ( 1 , 2 , 3 ) , b1 . transform . localPosition ) ;
106
+ // only the mesh + materials should change
107
+ Assert . AreEqual ( b . GetComponent < MeshFilter > ( ) . sharedMesh , a . GetComponent < MeshFilter > ( ) . sharedMesh ) ;
108
+ Assert . IsFalse ( b . GetComponent < BoxCollider > ( ) ) ;
109
+ Assert . AreEqual ( "BB" , b . transform . GetChild ( 1 ) . name ) ;
110
+ Assert . AreEqual ( Vector3 . zero , b1 . transform . localPosition ) ;
98
111
}
99
112
}
100
113
@@ -114,20 +127,18 @@ public void BasicTest()
114
127
// Make sure it's what we expect.
115
128
Assert . That ( cube ) ; // we kept the original
116
129
Assert . That ( cubePrefabInstance ) ; // we got the new
130
+ Assert . AreSame ( cube , cubePrefabInstance ) ; // the original and new are the same
117
131
Assert . AreEqual ( "Cube" , cubePrefabInstance . name ) ; // it has the right name
118
132
Assert . That ( ! EditorUtility . IsPersistent ( cubePrefabInstance ) ) ;
119
133
var cubePrefabAsset = PrefabUtility . GetPrefabParent ( cubePrefabInstance ) ;
120
134
Assert . That ( cubePrefabAsset ) ;
135
+ Assert . That ( EditorUtility . IsPersistent ( cubePrefabAsset ) ) ;
121
136
122
- // it's a different mesh instance, but the same mesh
123
- Assert . AreNotEqual (
124
- cube . GetComponent < MeshFilter > ( ) . sharedMesh ,
125
- cubePrefabInstance . GetComponent < MeshFilter > ( ) . sharedMesh ) ;
126
137
Assert . That ( cubePrefabInstance . GetComponent < FbxPrefab > ( ) ) ;
127
138
128
139
// Should be all the same triangles. But it isn't. TODO.
129
140
// At least the indices should match in multiplicity.
130
- var cubeMesh = cube . GetComponent < MeshFilter > ( ) . sharedMesh ;
141
+ var cubeMesh = GameObject . CreatePrimitive ( PrimitiveType . Cube ) . GetComponent < MeshFilter > ( ) . sharedMesh ;
131
142
var cubePrefabMesh = cubePrefabInstance . GetComponent < MeshFilter > ( ) . sharedMesh ;
132
143
//Assert.That(
133
144
// cubeMesh.triangles,
@@ -145,16 +156,7 @@ public void BasicTest()
145
156
// Also make sure we deleted.
146
157
var cubePrefabInstance2 = ConvertToModel . Convert ( cubePrefabInstance ,
147
158
directoryFullPath : path ) ;
148
- Assert . IsFalse ( cubePrefabInstance ) ;
149
159
Assert . That ( cubePrefabInstance2 . GetComponents < FbxPrefab > ( ) . Length , Is . EqualTo ( 1 ) ) ;
150
-
151
- // Create another cube, make sure the export settings drive whether we keep the cube or not.
152
- ConvertToModel . Convert ( cube , directoryFullPath : path ) ;
153
- if ( ConvertToModel . ExportSettings . keepOriginalAfterConvert ) {
154
- Assert . IsTrue ( cube ) ;
155
- } else {
156
- Assert . IsFalse ( cube ) ;
157
- }
158
160
}
159
161
160
162
[ Test ]
@@ -173,9 +175,8 @@ public void SkinnedMeshTest()
173
175
Object . DestroyImmediate ( meshRender ) ;
174
176
Object . DestroyImmediate ( meshFilter ) ;
175
177
176
- // Convert it. Make sure it gets deleted, to avoid a useless error about internal consistency.
178
+ // Convert it.
177
179
var cubeInstance = ConvertToModel . Convert ( cube , fbxFullPath : GetRandomFbxFilePath ( ) ) ;
178
- if ( cube ) { Object . DestroyImmediate ( cube ) ; }
179
180
180
181
// Make sure it doesn't have a skinned mesh renderer on it.
181
182
// In the future we'll want to assert the opposite!
0 commit comments