diff options
| author | Jan Nils Ferner <contact@jnferner.com> | 2023-01-27 14:48:44 +0100 |
|---|---|---|
| committer | Jan Nils Ferner <contact@jnferner.com> | 2023-01-27 14:48:44 +0100 |
| commit | 7bfa593d3f370afc0fe2f9680d99fa4c7bc0cee1 (patch) | |
| tree | 64211591fb7bf9ff415a9296d823312eece6c0c9 /src/control | |
| parent | eaa3d8e259925903584780f11cbfe7dcc297ac5b (diff) | |
| download | rapier-7bfa593d3f370afc0fe2f9680d99fa4c7bc0cee1.tar.gz rapier-7bfa593d3f370afc0fe2f9680d99fa4c7bc0cee1.tar.bz2 rapier-7bfa593d3f370afc0fe2f9680d99fa4c7bc0cee1.zip | |
Fix slightly incorrect snapping
Diffstat (limited to 'src/control')
| -rw-r--r-- | src/control/character_controller.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/control/character_controller.rs b/src/control/character_controller.rs index 1b5a792..ec0e04e 100644 --- a/src/control/character_controller.rs +++ b/src/control/character_controller.rs @@ -328,20 +328,20 @@ impl KinematicCharacterController { result: &mut EffectiveCharacterMovement, ) -> Option<(ColliderHandle, TOI)> { if let Some(snap_distance) = self.snap_to_ground { - let snap_distance = snap_distance.eval(dims.y); if result.translation.dot(&self.up) < 1.0e-5 { - let offset = self.offset.eval(dims.y); + let snap_distance = snap_distance.eval(dims.y); if let Some((hit_handle, hit)) = queries.cast_shape( bodies, colliders, character_pos, &-self.up, character_shape, - snap_distance - offset, - false, + snap_distance, + true, filter, ) { // Apply the snap. + let offset = self.offset.eval(dims.y); let snap_distance = hit.toi - offset; if snap_distance.abs() > 1.0e-5 { result.translation -= *self.up * snap_distance; |
