private static void MoveHandle(Waypoint keyframe, Vector3 position, float size, float offset, Action <Vector3> applyFunction) { EditorGUI.BeginChangeCheck(); Vector3 updatedPosition = CustomHandles.MoveHandle(position, offset, size); updatedPosition = GlobalTransform.InverseTransfomed(updatedPosition); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(keyframe, "Change Waypoint"); applyFunction.Invoke(updatedPosition); keyframe.Drone.UpdateView(); } }
private static void FreeMove(Waypoint keyframe, Vector3 position, float size, Handles.CapFunction capFunction, Action <Vector3> applyFunction) { EditorGUI.BeginChangeCheck(); Vector3 newPosition = Handles.FreeMoveHandle(position, Quaternion.identity, size, DefaultSnap, capFunction); newPosition = GlobalTransform.InverseTransfomed(newPosition); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(keyframe, "Change Waypoint"); applyFunction.Invoke(newPosition); keyframe.Drone.UpdateView(); } }