Skip to content

Commit

Permalink
KCC::move_shape early break in case of no update.
Browse files Browse the repository at this point in the history
If no movements are performed in an iteration of move_shape, early
break, instead of trying to repeat it again.
  • Loading branch information
PieroV committed Feb 17, 2023
1 parent 2e929bb commit ea19166
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/control/character_controller.rs
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ impl KinematicCharacterController {
self.check_and_fix_penetrations();

let mut translation_remaining = desired_translation;
let mut translation_before = result.translation;

// Check if we are grounded at the initial position.
let grounded_at_starting_pos = self.detect_grounded_status_and_apply_friction(
Expand Down Expand Up @@ -290,6 +291,11 @@ impl KinematicCharacterController {
Some(&mut translation_remaining),
);

if (translation_before - result.translation).norm_squared() < 1e-10 {
break;
}
translation_before = result.translation;

if !self.slide {
break;
}
Expand Down

0 comments on commit ea19166

Please sign in to comment.