Expand description
§Wanderlust
Wanderlust is a character controller addon. Inspired by this excellent video and my previous attempts at creating a character controller, it is implemented on top of Rapier physics and highly customizable.
Wanderlust does not handle mouselook, as it’s more-or-less trivial to implement compared to movement, and would add significant complexity to build in
as many projects will have vastly different requirements for mouselook. The first_person.rs
example includes an example mouselook implementation.
To use Wanderlust, simply add the WanderlustPlugin
to your App
, and create an entity with the CharacterControllerBundle
.
§Planned Features
- Wallrunning
- Be more agnostic to up-vectors
- More examples
- 2D
- Mario-Galaxy-style planetoids
- Moving platforms
- Fix various jitter issues
§Potential Features
- Become agnostic to physics backend?
- Dashing?
- Ledge grappling?
- Input rework?
- More bundles for different common configurations?
§Contributions
Wanderlust is intended to cover nearly every possible use case of a character controller, so if your use case is not supported (or there’s a feature you would like to see) please drop an issue on the repository! PRs are also welcome, but I may not accept all PRs. Open an issue first if you’re not certain that I would accept.
§Examples
The first_person.rs
example which shows a simple character controller setup.
The starship.rs
example which shows a simple spaceship controller setup.
Dual-licensed under MIT OR Apache 2.0.
Structs§
- Controller
Bundle - The recommended bundle for creating a character controller. Includes the necessary components for a character controller
as well as many physics-related components that can be used to tweak the behavior of the controller. Try using the
[
Self::builder()
] method to construct the bundle! - Controller
Input - This is the interface for applying input to the character controller. See each field for more information.
- Controller
Physics Bundle - Contains common physics settings for character controllers.
- Controller
Settings - The settings of a character controller. See each individual field for more description.
- Controller
State - The character controller’s state.
This is the component responsible for adding controls to an entity.
Requires [
ControllerSettings
], [ControllerInput
], [GlobalTransform
], andExternalImpulse
to work. - Spring
- Spring parameters for a dampened harmonic oscillator.
- Wanderlust
Physics Tweaks - Should
WanderlustPlugin
tweak physics rules to make the character controller work better? If not present, defaults to true. Must be added beforeWanderlustPlugin
. - Wanderlust
Plugin - The character controller plugin. Necessary to have the character controller work.
Functions§
- movement
- Note: Most users will not need to use this directly. Use
WanderlustPlugin
instead. This system is useful for cases such as running on a fixed timestep. - setup_
physics_ context - Note: Most users will not need to use this directly. Use
WanderlustPlugin
instead. Alternatively, if one only wants to disable the system, useWanderlustPhysicsTweaks
.