From fb4261b82f518c76e197aba76f06f2d83d314a69 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Sun, 2 Jan 2022 20:07:19 +0100 Subject: [PATCH] Scale freelook sensitivity with zoom in the 3D editor When using a FOV scale lower than the default (using Alt + mouse wheel), the mouse sensitivity is now scaled to make it easier to use freelook to look at distant objects. This does not affect orbiting and panning. --- editor/plugins/node_3d_editor_plugin.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index f49b749046b..c2f8d144ee8 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -2439,7 +2439,8 @@ void Node3DEditorViewport::_nav_look(Ref p_event, const _menu_option(VIEW_PERSPECTIVE); } - const real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_sensitivity"); + // Scale mouse sensitivity with camera FOV scale when zoomed in to make it easier to point at things. + const real_t degrees_per_pixel = real_t(EditorSettings::get_singleton()->get("editors/3d/freelook/freelook_sensitivity")) * MIN(1.0, cursor.fov_scale); const real_t radians_per_pixel = Math::deg2rad(degrees_per_pixel); const bool invert_y_axis = EditorSettings::get_singleton()->get("editors/3d/navigation/invert_y_axis");