Пример #1
0
        public static void OnSceneGUI(SceneView sceneView)
        {
            // TODO: put somewhere else
            var curSkin = EditorGUIUtility.isProSkin;

            if (toolbarStyle == null ||
                prevSkin != curSkin)
            {
                toolbarStyle             = new GUIStyle(EditorStyles.toolbar);
                toolbarStyle.fixedHeight = kBottomBarHeight;

                toggleStyle             = new GUIStyle(EditorStyles.toolbarButton);
                toggleStyle.fixedHeight = kBottomBarHeight;

                buttonStyle             = new GUIStyle(EditorStyles.toolbarButton);
                buttonStyle.fixedHeight = kBottomBarHeight;

                floatWidthLayout = GUILayout.Width(kFloatFieldWidth);

                prevSkin = curSkin;
                ChiselEditorSettings.Load();
            }


            // Calculate size of bottom bar and draw it
            Rect position = sceneView.position;

            position.x      = 0;
            position.y      = position.height - kBottomBarHeight;
            position.height = kBottomBarHeight;

            GUILayout.Window(bottomBarGuiId, position, OnBottomBarUI, "", toolbarStyle);
            ChiselEditorUtility.ConsumeUnusedMouseEvents(BottomBarGUIHash, position);
        }
Пример #2
0
 static void InitStyles()
 {
     if (styles == null)
     {
         ChiselEditorSettings.Load();
         styles = new Styles
         {
             boxStyle         = new GUIStyle(GUI.skin.box),
             namedToggleStyle = new GUIStyle(GUI.skin.button)
             {
                 alignment   = TextAnchor.MiddleLeft,
                 fixedHeight = kSingleLineHeight - 2,
                 padding     = new RectOffset(kButtonPadding, kButtonPadding, kButtonPadding, kButtonPadding),
                 margin      = new RectOffset(kButtonMargin, kButtonMargin, kButtonMargin, kButtonMargin)
             },
             toggleStyleLeft = new GUIStyle(EditorStyles.miniButtonLeft)
             {
                 padding     = new RectOffset(kButtonPadding + kButtonMargin, kButtonPadding + kButtonMargin, kButtonPadding, kButtonPadding),
                 margin      = new RectOffset(0, 0, kButtonMargin, 0),
                 fixedWidth  = kButtonSize + kButtonMargin + kButtonMargin,
                 fixedHeight = kButtonSize,
             },
             toggleStyleMid = new GUIStyle(EditorStyles.miniButtonMid)
             {
                 padding     = new RectOffset(kButtonPadding + kButtonMargin, kButtonPadding + kButtonMargin, kButtonPadding, kButtonPadding),
                 margin      = new RectOffset(0, 0, kButtonMargin, 0),
                 fixedWidth  = kButtonSize + kButtonMargin + kButtonMargin,
                 fixedHeight = kButtonSize,
             },
             toggleStyleRight = new GUIStyle(EditorStyles.miniButtonRight)
             {
                 padding     = new RectOffset(kButtonPadding + kButtonMargin, kButtonPadding + kButtonMargin, kButtonPadding, kButtonPadding),
                 margin      = new RectOffset(0, 0, kButtonMargin, 0),
                 fixedWidth  = kButtonSize + kButtonMargin + kButtonMargin,
                 fixedHeight = kButtonSize,
             },
             addStyle = new GUIStyle(GUI.skin.button)
             {
                 fixedWidth  = kButtonSize,
                 fixedHeight = kButtonSize,
                 padding     = new RectOffset(kButtonPadding, kButtonPadding, kButtonPadding, kButtonPadding),
                 margin      = new RectOffset(kButtonMargin, kButtonMargin, kButtonMargin, kButtonMargin)
             },
             groupTitleStyle = new GUIStyle(EditorStyles.boldLabel)
         };
         styles.boxStyleVerticalMargin = styles.boxStyle.margin.vertical;
     }
 }
Пример #3
0
        private static void GridOnSceneGUI(SceneView sceneView)
        {
            if (Event.current.type != EventType.Repaint)
            {
                return;
            }

            if (ShowUnityGrid)
            {
                ShowUnityGrid = false;
                ChiselEditorSettings.Load();
                ChiselEditorSettings.ShowGrid = false;
                ChiselEditorSettings.Save();
            }

            if (Tools.pivotRotation == PivotRotation.Local)
            {
                var activeTransform = Selection.activeTransform;

                var rotation = Tools.handleRotation;
                var center   = (activeTransform && activeTransform.parent) ? activeTransform.parent.position : Vector3.zero;

                UnitySceneExtensions.Grid.defaultGrid.GridToWorldSpace = Matrix4x4.TRS(center, rotation, Vector3.one);
            }
            else
            {
                UnitySceneExtensions.Grid.defaultGrid.GridToWorldSpace = Matrix4x4.identity;
            }

            if (ChiselEditorSettings.ShowGrid)
            {
                var grid = UnitySceneExtensions.Grid.HoverGrid;
                if (grid != null)
                {
                    grid.Spacing = UnitySceneExtensions.Grid.defaultGrid.Spacing;
                }
                else
                {
                    grid = UnitySceneExtensions.Grid.ActiveGrid;
                }
                grid.Render(sceneView);
            }

            if (UnitySceneExtensions.Grid.debugGrid != null)
            {
                UnitySceneExtensions.Grid.debugGrid.Render(sceneView);
            }
        }
 static void InitStyles()
 {
     if (styles == null)
     {
         ChiselEditorSettings.Load();
         styles = new Styles
         {
             toggleStyle = new GUIStyle("AppCommand")
             {
                 padding     = new RectOffset(kButtonPadding + kButtonMargin, kButtonPadding, kButtonPadding, kButtonPadding),
                 margin      = new RectOffset(0, 0, kButtonMargin, 0),
                 fixedWidth  = kButtonSize + kButtonMargin,
                 fixedHeight = kButtonSize,
             },
             toggleStyleLeft = new GUIStyle("AppCommandLeft")
             {
                 padding     = new RectOffset(kButtonPadding + kButtonMargin, kButtonPadding, kButtonPadding, kButtonPadding),
                 margin      = new RectOffset(0, 0, kButtonMargin, 0),
                 fixedWidth  = kButtonSize + kButtonMargin,
                 fixedHeight = kButtonSize,
             },
             toggleStyleMid = new GUIStyle("AppCommandMid")
             {
                 padding     = new RectOffset(kButtonPadding + kButtonMargin, kButtonPadding, kButtonPadding, kButtonPadding),
                 margin      = new RectOffset(0, 0, kButtonMargin, 0),
                 fixedWidth  = kButtonSize + kButtonMargin,
                 fixedHeight = kButtonSize,
             },
             toggleStyleRight = new GUIStyle("AppCommandRight")
             {
                 padding     = new RectOffset(kButtonPadding + kButtonMargin, kButtonPadding, kButtonPadding, kButtonPadding),
                 margin      = new RectOffset(0, 0, kButtonMargin, 0),
                 fixedWidth  = kButtonSize + kButtonMargin,
                 fixedHeight = kButtonSize,
             },
             buttonRowStyle = new GUIStyle(GUIStyle.none)
         };
     }
 }
Пример #5
0
        public static void Update()
        {
            isProSkin = EditorGUIUtility.isProSkin;
            if (toolbarStyle != null && prevIsProSkin == isProSkin)
            {
                return;
            }

            isInitialized          = true;
            inspectorLabel         = new GUIStyle(GUI.skin.label);
            inspectorLabel.padding = new RectOffset(kIconSize + kOffsetToText, 0, 0, 0);

            inspectorSelectedLabel = new GUIStyle(inspectorLabel);
            if (!isProSkin)
            {
                inspectorSelectedLabel.normal.textColor   = Color.white;
                inspectorSelectedLabel.onNormal.textColor = Color.white;
            }

            windowStyle = new GUIStyle(GUI.skin.window);

            toolbarStyle               = new GUIStyle(GUI.skin.window);
            toolbarStyle.fixedHeight   = kBottomBarHeight;
            toolbarStyle.padding       = new RectOffset(2, 6, 0, 1);
            toolbarStyle.contentOffset = Vector2.zero;

            toggleStyle             = new GUIStyle(EditorStyles.toolbarButton);
            toggleStyle.fixedHeight = kBottomBarHeight - 2;
            toggleStyle.margin      = new RectOffset(0, 0, 1, 0);

            buttonStyle             = new GUIStyle(EditorStyles.toolbarButton);
            buttonStyle.fixedHeight = kBottomBarHeight - 2;
            buttonStyle.margin      = new RectOffset(0, 0, 1, 0);

            prevIsProSkin = isProSkin;
            ChiselEditorSettings.Load(); // <- put somewhere else
        }
Пример #6
0
        internal static void GridOnSceneGUI(SceneView sceneView)
        {
            if (sceneView.showGrid)
            {
                sceneView.showGrid = false;
                ChiselEditorSettings.Load();
                ChiselEditorSettings.ShowGrid = true;
                ChiselEditorSettings.Save();
            }

            var sceneViewGrids = sceneViewGridsProperty?.GetValue(sceneView);

            GridRenderer.Opacity = gridOpacityProperty?.GetValue(sceneViewGrids) ?? 1.0f;

            var activeTransform = Selection.activeTransform;

            if (Tools.pivotRotation == PivotRotation.Local && activeTransform)
            {
                var rotation = Tools.handleRotation;
                var center   = (activeTransform && activeTransform.parent) ? activeTransform.parent.position : Vector3.zero;

                UnitySceneExtensions.Grid.defaultGrid.GridToWorldSpace = Matrix4x4.TRS(center, rotation, Vector3.one);
            }
            else
            {
                var gridAxis = gridAxisProperty?.GetValue(sceneViewGrids) ?? 1;
                switch (gridAxis)
                {
                case 0: UnitySceneExtensions.Grid.defaultGrid.GridToWorldSpace = UnitySceneExtensions.Grid.XYPlane; break;

                case 1: UnitySceneExtensions.Grid.defaultGrid.GridToWorldSpace = UnitySceneExtensions.Grid.XZPlane; break;

                case 2: UnitySceneExtensions.Grid.defaultGrid.GridToWorldSpace = UnitySceneExtensions.Grid.YZPlane; break;
                }
            }

            if (Event.current.type != EventType.Repaint)
            {
                return;
            }


            if (ChiselEditorSettings.ShowGrid)
            {
                var grid = UnitySceneExtensions.Grid.HoverGrid;
                if (grid != null)
                {
                    grid.Spacing = UnitySceneExtensions.Grid.defaultGrid.Spacing;
                }
                else
                {
                    grid = UnitySceneExtensions.Grid.ActiveGrid;
                }
                grid.Render(sceneView);
            }

            if (UnitySceneExtensions.Grid.debugGrid != null)
            {
                //static ReflectedInstanceProperty<object> sceneViewGrids = typeof(SceneView).GetProperty<object>("sceneViewGrids");
                //static ReflectedInstanceProperty<float> gridOpacity = ReflectionExtensions.GetProperty<float>("SceneViewGrid", "gridOpacity");
                UnitySceneExtensions.Grid.debugGrid.Render(sceneView);
            }
        }