internal void OnDisable() { ShouldDrawSceneGUI = false; Tools.hidden = false; CurveEditorState.ClearKnotSelection(); Repaint(); }
private void ValidateSelected() { if (CurveEditorState.ValidateSelectedKnotIsValid(_spline)) { CurveEditorState.ClearKnotSelection(); Repaint(); } }
public static void CheckSelectedKnotHotkeys( IBezier3DSplineData splineData, Action <IReadOnly3DSplineData> onUpdateSpline) { var evt = Event.current; switch (evt.type) { case EventType.KeyDown: // Delete Selected Knot if (evt.keyCode == KeyCode.Delete) { if (splineData.KnotCount > 2) { Undo.RecordObject((UnityEngine.Object)splineData, "Remove Bezier Point"); splineData.RemoveKnot(CurveEditorState.SelectedKnotIndex); CurveEditorState.ClearKnotSelection(); onUpdateSpline?.Invoke(splineData); } evt.Use(); } // Focus Selected Knot if (evt.keyCode == KeyCode.F) { var dist = splineData.GetSplineDistanceForKnotIndex(CurveEditorState.SelectedKnotIndex); var pos = splineData.GetPosition(dist); SceneView.lastActiveSceneView.Frame(new Bounds(pos, Vector3.one * 5f), false); evt.Use(); } // Clear Knot Selection if (evt.keyCode == KeyCode.Escape) { CurveEditorState.ClearKnotSelection(); evt.Use(); } break; } }