diff --git a/scene/debugger/view_3d_controller.cpp b/scene/debugger/view_3d_controller.cpp index 77eb6bbf83..29416e101f 100644 --- a/scene/debugger/view_3d_controller.cpp +++ b/scene/debugger/view_3d_controller.cpp @@ -681,10 +681,11 @@ void View3DController::set_freelook_enabled(const bool p_enabled) { } freelook = p_enabled; - if (freelook) { - // Sync interpolated cursor to cursor to "cut" interpolation jumps due to changing referential. - cursor = cursor_interp; + // Sync interpolated cursor to cursor to "cut" interpolation jumps due to changing referential. + cursor = cursor_interp; + + if (freelook) { // Make sure eye_pos is synced, because freelook referential is eye pos rather than orbit pos. Vector3 forward = to_camera_transform().basis.xform(Vector3(0, 0, -1)); cursor.eye_pos = cursor.pos - cursor.distance * forward;