public void Display(NestedPrefab parent, Vector3 localToWorld, int index) { _parent = parent; Gizmos.color = Color; var mesh = Prefab.GetComponent <MeshFilter>(); //Handles.Label(pos + Vector3.up, string.Format("{0} {1}", Prefab.name, index)); NestedPrefab nestedPrefab = null; if (mesh == null) { nestedPrefab = Prefab.GetComponent <NestedPrefab>(); } for (int i = 0; i < ChildPositions.Length; i++) { if (mesh != null) { Gizmos.DrawWireMesh(mesh.sharedMesh, localToWorld + ChildPositions[i], Quaternion.Euler(Rotation), Prefab.transform.localScale); } else if (nestedPrefab != null) { nestedPrefab.DrawGizmos(parent.transform, RootPosition + ChildPositions[i]); } else { var cubeSize = Vector3.one; var collider = Prefab.GetComponent <Collider>(); if (collider != null) { cubeSize = collider.bounds.size; } Gizmos.DrawWireCube(localToWorld, cubeSize); } } }