From c8fd390ced105763b90f84ac472f99058a46ba6a Mon Sep 17 00:00:00 2001 From: Tomato <67799071+100-TomatoJuice@users.noreply.github.com> Date: Thu, 12 Oct 2023 10:58:32 -0700 Subject: [PATCH] Change `AxisSettings` livezone default (#10090) # Objective While using joysticks for player aiming, I noticed that there was as `0.05` value snap on the axis. After searching through Bevy's code, I saw it was the default livezone being at `0.95`. This causes any value higher to snap to `1.0`. I think `1.0` and `-1.0` would be a better default, as it gives all values to the joystick arc. This default livezone stumped me for a bit as I thought either something was broken or I was doing something wrong. ## Solution Change the livezone defaults to ` livezone_upperbound: 1.0` and `livezone_lowerbound: -1.0`. --- ## Migration Guide If the default 0.05 was relied on, the default or gamepad `AxisSettings` on the resource `GamepadSettings` will have to be changed. --- crates/bevy_input/src/gamepad.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/bevy_input/src/gamepad.rs b/crates/bevy_input/src/gamepad.rs index b3356544d8634..96ab125fa2907 100644 --- a/crates/bevy_input/src/gamepad.rs +++ b/crates/bevy_input/src/gamepad.rs @@ -631,10 +631,10 @@ pub struct AxisSettings { impl Default for AxisSettings { fn default() -> Self { AxisSettings { - livezone_upperbound: 0.95, + livezone_upperbound: 1.0, deadzone_upperbound: 0.05, deadzone_lowerbound: -0.05, - livezone_lowerbound: -0.95, + livezone_lowerbound: -1.0, threshold: 0.01, } } @@ -1529,7 +1529,7 @@ mod tests { ]; for (new_value, expected) in cases { - let settings = AxisSettings::default(); + let settings = AxisSettings::new(-0.95, -0.05, 0.05, 0.95, 0.01).unwrap(); test_axis_settings_filter(settings, new_value, None, expected); } } @@ -1556,7 +1556,7 @@ mod tests { ]; for (new_value, old_value, expected) in cases { - let settings = AxisSettings::default(); + let settings = AxisSettings::new(-0.95, -0.05, 0.05, 0.95, 0.01).unwrap(); test_axis_settings_filter(settings, new_value, old_value, expected); } }