/// <summary> /// Entry point for rendering /// </summary> public void OnSceneGUI() { if (Event.current.ToString() == "used") { return; } if (Event.current.isMouse && Event.current.type == EventType.MouseDrag && Event.current.button == 1) { return; } EditorApplication.update -= Update; EditorApplication.update += Update; var roundedMin = GridManager.GetCellMin(Rect.min.x0z()); var roundedMax = GridManager.GetCellMin(Rect.max.x0z()); Rect = Rect.MinMaxRect(roundedMin.x, roundedMin.y, roundedMax.x, roundedMax.y); HandleUtility.AddDefaultControl(GUIUtility.GetControlID(FocusType.Passive)); Tools.current = Tool.None; if (GridManager == null) { Debug.LogWarning("GridManager was null!"); return; } var t = EditorApplication.timeSinceStartup; var dt = (float)Mathfx.Clamp(t - _lastUpdate, double.Epsilon, 0.5); _lastUpdate = EditorApplication.timeSinceStartup; UpdateInputState(); Paint(dt); UpdateVisualisation(); SceneView.RepaintAll(); }