コード例 #1
0
ファイル: GroupifyWindow.cs プロジェクト: densylkin/Groupify
        private void DrawGroup(Group group, int i)
        {
            using (new HorizontalBlock(EditorStyles.toolbar, GUILayout.ExpandWidth(true)))
            {
                GUILayout.Space(5f);
                group.editing = EditorGUILayout.Toggle(group.editing, EditorStyles.foldout, GUILayout.Width(10));
                if (group.editing)
                {
                    group.Name = GUILayout.TextField(group.Name, GUILayout.Width(100));
                }
                else
                {
                    using (new ColoredBlock(group.Locked || group.Hidden ? EditorGUIUtility.isProSkin ? new Color(0.7f, 0.7f, 0.7f) : new Color(0.3f, 0.3f, 0.3f) : Color.white))
                    {
                        GUILayout.Label(group.Name + "(" + group.Count + ")", GUILayout.Width(100));
                    }
                }

                //Select
                if (GUILayout.Button(new GUIContent(handIcon, "Select objects"), EditorStyles.toolbarButton, GUILayout.Width(btnSize)))
                {
                    group.Select();
                }
                //Hide
                group.Hidden = GUILayout.Toggle(group.Hidden, new GUIContent(eyeIcon, "Hide objects"), EditorStyles.toolbarButton, GUILayout.Width(btnSize));
                //Lock
                group.Locked = GUILayout.Toggle(group.Locked, new GUIContent(lockIcon, "Freeze objects"), EditorStyles.toolbarButton, GUILayout.Width(btnSize));
                //Highlight
                group.Highlighted = GUILayout.Toggle(group.Highlighted, new GUIContent(lightIcon, "Highlight group objects"), EditorStyles.toolbarButton, GUILayout.Width(btnSize));

                GUILayout.FlexibleSpace();
                MoveGroupBtns(i, group);

                if (GUILayout.Button(new GUIContent("X", "Delete this group"), EditorStyles.toolbarButton, GUILayout.Width(20)))
                {
                    Groupify.RemoveGroup(group);
                    SceneView.onSceneGUIDelegate -= group.OnSceneGUI;
                }
            }

            DropArea(GUILayoutUtility.GetLastRect(), (objects) =>
            {
                group.Add(objects);
            });

            EditGroup(group);
        }