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(); } }