Character Movement System
How to work with Airships core character movement system
Last updated
How to work with Airships core character movement system
Last updated
When spawning in a default Character you get the benefit of several different movement features for your game.
Jogging - Default movement
Sprinting - Faster movement
Crouching - Slower movement with a lower hitbox
Jumping - single or multi jump with controls for upward and downard force
Flying - A no gravity mode for vertical movement (useful in debugging levels)
Step Ups - Automatically step up to higher colliders smoothly
Slopes - Control how fast slopes pull you down and what slopes you can move and jump on
Knockback - Easily add forces to the character
The system is built with a Rigidbody and Box Collider. You can apply forces or directly override the velocity to add custom movement mechanics.
There are two main components for Movement. CharacterMovement which has all the logic for controlling movement, and CharacterMovementData which has all of the exposed variables for fine tuning your system.
After creating your own Character prefab variant, you can customize the system as you see fit. Open up your Character prefab and scroll to the CharacterMovementData component in the inspector.
The character is controlled by a Rigidbody and Box Collider. The Box Collider is axis aligned. Meaning the root of your character DOES NOT ROTATE.
The rotation happens purely on the graphical elements of the hierarchy. Specifically on the NetworkedGraphicsHolder. So if you want to get the rotation of the character you will need to grab the rotation from that transform, or use the look vector from the CharacterMovement component
The rigibodies forces are controlled by the CharacterMovement component. If you want to add forces you can use the Impulse functions. If you want to control the velocity you can use the SetVelocity function.
Its easy to check if another component has collided with the characters. Simply check for the Character component, or any other component on the root of the Character prefab.
The animations of the characters movements will be automatically synced to the CharacterMovement state and networked to other players.
You can see a breakdown of the variables