dimforge / bevy_rapier

Official Rapier plugin for the Bevy game engine.
https://rapier.rs
Apache License 2.0
1.25k stars 260 forks source link

KinematicCharacterController doesn't respect max_slope_climb_angle #534

Open emiosproj opened 3 months ago

emiosproj commented 3 months ago

How to reproduce: Set max_slope_climb_angle. Translate the controller with no Up force into a slope that is of greater angle than max_slope_climb_angle.

Expected: If the slope is a higher angle than max_slope_climb_angle we stop like its a wall Actual: KinematicCharacterController translates us up the slope.

Here is the sample code that can be used to demonstrate this behavior: https://github.com/dimforge/bevy_rapier/pull/532

Vrixyz commented 3 months ago

Some important information: the character controller from rapier reacts correctly to a slope they cannot climb. ^ That means the bug is either within bevy_rapier or on its example.

Wild guesses, it might or might not be what's happening, but it could help to verify that theory:

it might be related to system ordering and transform propagation: