@@ -128,6 +128,56 @@ protected void AssertSameMeshesAndMaterials(GameObject expectedHierarchy, GameOb
128
128
}
129
129
}
130
130
131
+ [ Test ]
132
+ public void TestReferencesInScene ( )
133
+ {
134
+ // test that references that scene objects hold to the converted object
135
+ // are maintained
136
+ var a = GameObject . CreatePrimitive ( PrimitiveType . Cube ) ;
137
+ var b = GameObject . CreatePrimitive ( PrimitiveType . Sphere ) ;
138
+ b . transform . SetParent ( a . transform ) ;
139
+
140
+ var c = new GameObject ( ) ;
141
+ var reference = c . AddComponent < ReferenceComponent > ( ) ;
142
+ reference . m_goList = new GameObject [ ] { a , b } ;
143
+ reference . m_collider = a . GetComponent < BoxCollider > ( ) ;
144
+ reference . m_transform = b . transform ;
145
+
146
+ var fbxPath = GetRandomFbxFilePath ( ) ;
147
+
148
+ // Convert it to a prefab
149
+ var prefab = ConvertToNestedPrefab . Convert ( a ,
150
+ fbxFullPath : fbxPath , prefabFullPath : Path . ChangeExtension ( fbxPath , "prefab" ) ) ;
151
+ Assert . That ( prefab ) ;
152
+ Assert . That ( ! a ) ;
153
+
154
+ var newA = prefab ;
155
+ var newB = prefab . transform . GetChild ( 0 ) . gameObject ;
156
+
157
+ Assert . That ( reference . m_goList . Length , Is . EqualTo ( 2 ) ) ;
158
+ Assert . That ( reference . m_goList [ 0 ] , Is . EqualTo ( newA ) ) ;
159
+ Assert . That ( reference . m_goList [ 1 ] , Is . EqualTo ( newB ) ) ;
160
+ Assert . That ( reference . m_collider , Is . EqualTo ( newA . GetComponent < BoxCollider > ( ) ) ) ;
161
+ Assert . That ( reference . m_transform , Is . EqualTo ( newB . transform ) ) ;
162
+
163
+ // Test undo and redo still maintains the right references
164
+ Undo . PerformUndo ( ) ;
165
+
166
+ Assert . That ( reference . m_goList . Length , Is . EqualTo ( 2 ) ) ;
167
+ Assert . That ( reference . m_goList [ 0 ] , Is . EqualTo ( a ) ) ;
168
+ Assert . That ( reference . m_goList [ 1 ] , Is . EqualTo ( b ) ) ;
169
+ Assert . That ( reference . m_collider , Is . EqualTo ( a . GetComponent < BoxCollider > ( ) ) ) ;
170
+ Assert . That ( reference . m_transform , Is . EqualTo ( b . transform ) ) ;
171
+
172
+ Undo . PerformRedo ( ) ;
173
+
174
+ Assert . That ( reference . m_goList . Length , Is . EqualTo ( 2 ) ) ;
175
+ Assert . That ( reference . m_goList [ 0 ] , Is . EqualTo ( newA ) ) ;
176
+ Assert . That ( reference . m_goList [ 1 ] , Is . EqualTo ( newB ) ) ;
177
+ Assert . That ( reference . m_collider , Is . EqualTo ( newA . GetComponent < BoxCollider > ( ) ) ) ;
178
+ Assert . That ( reference . m_transform , Is . EqualTo ( newB . transform ) ) ;
179
+ }
180
+
131
181
[ Test ]
132
182
public void TestReferences ( )
133
183
{
0 commit comments