Skip to content

Commit de0da22

Browse files
committed
added node visibility unit test
1 parent afb3504 commit de0da22

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

Assets/FbxExporters/Editor/UnitTests/ModelExporterTest.cs

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,5 +316,66 @@ public void TestExporterCallbacks()
316316
assetMesh = asset.transform.Find("Parent2").GetComponent<MeshFilter>().sharedMesh;
317317
Assert.AreEqual(sphereMesh.triangles.Length, assetMesh.triangles.Length);
318318
}
319+
320+
[Test]
321+
public void TestNodeVisibility()
322+
{
323+
// create test hierarchy
324+
// root (enabled)
325+
// -- parent1 (enabled)
326+
// -- parent2 (disabled)
327+
// ---- child1 (disabled)
328+
// ---- child2 (enabled)
329+
330+
var root = GameObject.CreatePrimitive(PrimitiveType.Cube);
331+
root.name = "root";
332+
var parent1 = GameObject.CreatePrimitive(PrimitiveType.Cube);
333+
parent1.name = "parent1";
334+
var parent2 = GameObject.CreatePrimitive(PrimitiveType.Cube);
335+
parent2.name = "parent2";
336+
var child1 = GameObject.CreatePrimitive(PrimitiveType.Cube);
337+
child1.name = "child1";
338+
var child2 = GameObject.CreatePrimitive(PrimitiveType.Cube);
339+
child2.name = "child2";
340+
341+
parent1.transform.SetParent (root.transform);
342+
parent2.transform.SetParent (root.transform);
343+
child1.transform.SetParent (parent2.transform);
344+
child2.transform.SetParent (parent2.transform);
345+
346+
root.SetActive (true);
347+
parent1.SetActive (true);
348+
child2.SetActive (true);
349+
parent2.SetActive (false);
350+
child1.SetActive (false);
351+
352+
string filename = GetRandomFbxFilePath ();
353+
ModelExporter.ExportObject (filename, root);
354+
355+
GameObject fbxObj = AssetDatabase.LoadMainAssetAtPath (filename) as GameObject;
356+
357+
// check root
358+
CheckObjectVisibility (fbxObj, true);
359+
360+
// check child nodes
361+
foreach (Transform child in fbxObj.transform) {
362+
var isParent1 = child.name.Equals ("parent1");
363+
CheckObjectVisibility (child.gameObject, isParent1);
364+
365+
if (isParent1) {
366+
// all of parent1's children should be disabled
367+
foreach (Transform c in child) {
368+
CheckObjectVisibility (c.gameObject, false);
369+
}
370+
}
371+
}
372+
}
373+
374+
private void CheckObjectVisibility(GameObject obj, bool expectedVisibility){
375+
Assert.IsTrue (obj.activeSelf);
376+
var renderer = obj.GetComponent<MeshRenderer> ();
377+
Assert.IsNotNull (renderer);
378+
Assert.AreEqual(expectedVisibility, renderer.enabled);
379+
}
319380
}
320381
}

0 commit comments

Comments
 (0)