示例#1
0
        // Draws hierarchy Item recursiely
        private void drawHierarchyItem(LoziObject target, int count)
        {
            if (target == null)
            {
                return;
            }

            count++;
            if (GUI.Button(EditorGUILayout.BeginVertical(), GUIContent.none))
            {
                target.isFoldedInUI = !target.isFoldedInUI;
            }

            GUI.skin.box.margin = new RectOffset(10 * count, 0, 0, 0);
            GUI.Box(EditorGUILayout.BeginHorizontal("Box"), GUIContent.none);
            switch (target.objectType)
            {
            case ObjectType.Scene: GUILayout.Label(icons[0]); break;

            case ObjectType.Object: GUILayout.Label(icons[1]); break;

            case ObjectType.PerspectiveCamera: GUILayout.Label(icons[2]); break;

            case ObjectType.OrthographicCamera: GUILayout.Label(icons[2]); break;

            case ObjectType.PointLight: GUILayout.Label(icons[3]); break;

            case ObjectType.DirectionalLight: GUILayout.Label(icons[3]); break;

            case ObjectType.SpotLight: GUILayout.Label(icons[3]); break;

            case ObjectType.AreaLight: GUILayout.Label(icons[3]); break;

            case ObjectType.Mesh: GUILayout.Label(icons[4]); break;

            case ObjectType.SkinnedMesh: GUILayout.Label(icons[5]); break;

            case ObjectType.AnimationObject: GUILayout.Label(icons[6]); break;

            case ObjectType.Bone: GUILayout.Label(icons[7]); break;
            }
            GUILayout.Label(target.name);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.EndVertical();
            if (target.isFoldedInUI)
            {
                if (target.childObjects.Count > 0)
                {
                    EditorGUILayout.BeginVertical();
                    for (int num = 0; num < target.childObjects.Count; num++)
                    {
                        drawHierarchyItem(target.childObjects[num], count);
                    }
                    EditorGUILayout.EndVertical();
                }
            }
        }
示例#2
0
        // Recursively folds/unfolds all views
        private void foldHierarchy(LoziObject obj, bool fold)
        {
            if (obj != null)
            {
                obj.isFoldedInUI = fold;

                for (int num = 0; num < obj.childObjects.Count; num++)
                {
                    foldHierarchy(obj.childObjects[num], fold);
                }
            }
        }