A simple to use class that enables your CharacterBody3D to handle stairs properly.
Mainly tested with the Jolt physics engine and cylinder colliders, not guaranteed to work well with anything else - but try it!
- Make your character controller extend
StairsCharacter
instead ofCharacterBody3D
. - Ensure your character's collider is named 'Collider'.
- Every frame, set
DesiredVelocity
to the desired direction of movement. - Call
MoveAndStairStep()
instead of callingMoveAndSlide()
. - Done!
Ensure your character collider's margin value is set low - at most 0.01. Anything higher might cause snags. If you find that you're still snagging on ledges, lower it some more.