Split 3D editor sensitivity freelook sensitivity into its own setting
This allows configuring orbit sensitivity and freelook sensitivity independently from each other. Often, it's needed to use a lower freelook sensitivity compared to the orbit sensitivity. Also, 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.
This commit is contained in:
parent
0aa7768b1e
commit
d6e7308b3f
2 changed files with 4 additions and 1 deletions
|
@ -574,6 +574,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
|
|||
// 3D: Freelook
|
||||
_initial_set("editors/3d/freelook/freelook_navigation_scheme", false);
|
||||
hints["editors/3d/freelook/freelook_navigation_scheme"] = PropertyInfo(Variant::INT, "editors/3d/freelook/freelook_navigation_scheme", PROPERTY_HINT_ENUM, "Default,Partially Axis-Locked (id Tech),Fully Axis-Locked (Minecraft)");
|
||||
_initial_set("editors/3d/freelook/freelook_sensitivity", 0.25);
|
||||
hints["editors/3d/freelook/freelook_sensitivity"] = PropertyInfo(Variant::REAL, "editors/3d/freelook/freelook_sensitivity", PROPERTY_HINT_RANGE, "0.01, 2, 0.001");
|
||||
_initial_set("editors/3d/freelook/freelook_inertia", 0.0);
|
||||
hints["editors/3d/freelook/freelook_inertia"] = PropertyInfo(Variant::REAL, "editors/3d/freelook/freelook_inertia", PROPERTY_HINT_RANGE, "0, 1, 0.001");
|
||||
_initial_set("editors/3d/freelook/freelook_base_speed", 5.0);
|
||||
|
|
|
@ -2253,7 +2253,8 @@ void SpatialEditorViewport::_nav_look(Ref<InputEventWithModifiers> p_event, cons
|
|||
_menu_option(VIEW_PERSPECTIVE);
|
||||
}
|
||||
|
||||
const real_t degrees_per_pixel = EditorSettings::get_singleton()->get("editors/3d/navigation_feel/orbit_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");
|
||||
|
||||
|
|
Loading…
Reference in a new issue