Exemple #1
0
        public void OnSceneGUI(SceneView sceneView)
        {
            var camera = sceneView.camera;

            // defer surface updates when it's not currently visible
            if ((VisualizationMode & (VisualizationMode.Outline | VisualizationMode.SimpleOutline)) != VisualizationMode.None)
            {
                UpdateBrushState();
                brushOutlineRenderer.RenderAll(camera);
            }

            if ((VisualizationMode & VisualizationMode.Surface) == VisualizationMode.Surface)
            {
                UpdateSurfaceState();
                surfaceOutlineRenderer.RenderAll(camera);
            }

            handleRenderer.End();
            handleRenderer.RenderAll(camera);
            handleRenderer.Begin();

            var focus = UnitySceneExtensions.SceneHandleUtility.focusControl;

            if (prevFocus != focus)
            {
                prevFocus = focus;
                SceneView.RepaintAll();
            }
        }
        public void OnSceneGUI(SceneView sceneView)
        {
            if (Event.current.type != EventType.Repaint)
            {
                return;
            }

            var camera = sceneView.camera;

            if (Tools.current != Tool.Custom)
            {
                VisualizationMode = VisualizationMode.Outline;
            }

            // defer surface updates when it's not currently visible
            if ((VisualizationMode & VisualizationMode.Surface) == VisualizationMode.Surface)
            {
                UpdateSurfaceState();
                surfaceOutlineRenderer.RenderAll(camera);
            }
            else
            if ((VisualizationMode & (VisualizationMode.Outline | VisualizationMode.SimpleOutline)) != VisualizationMode.None)
            {
                UpdateBrushState();
                brushOutlineRenderer.RenderAll(camera);
            }

            var handleRenderer = GetHandleRenderer(camera);

            handleRenderer.End();
            handleRenderer.RenderAll(camera);
            handleRenderer.Begin();

            var focus = UnitySceneExtensions.SceneHandleUtility.focusControl;

            if (prevFocus != focus)
            {
                prevFocus = focus;
                SceneView.RepaintAll();
            }
        }