diff --git a/crates/bevy_input/src/gamepad.rs b/crates/bevy_input/src/gamepad.rs index c3707e6642..9106efe872 100644 --- a/crates/bevy_input/src/gamepad.rs +++ b/crates/bevy_input/src/gamepad.rs @@ -147,20 +147,22 @@ impl Default for AxisSettings { impl AxisSettings { fn filter(&self, new_value: f32, old_value: Option) -> Option { + let new_value = if new_value <= self.positive_low && new_value >= self.negative_low { + 0.0 + } else if new_value >= self.positive_high { + 1.0 + } else if new_value <= self.negative_high { + -1.0 + } else { + new_value + }; + if let Some(old_value) = old_value { if (new_value - old_value).abs() <= self.threshold { return None; } } - if new_value <= self.positive_low && new_value >= self.negative_low { - return Some(0.0); - } - if new_value >= self.positive_high { - return Some(1.0); - } - if new_value <= self.negative_high { - return Some(-1.0); - } + Some(new_value) } }