예제 #1
0
        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);
                }
            }
        }