This project is an extensible and customizable kinematic character controller solution inspired by pokeblokdude's character-controller.
The main objectives of this project are:
- Provide a high level of customization
- Implement Dynamic Rigidbody functionalities in a Kinematic Character Controller
- Support various constraints
- Offer an extensible character movement asset
My character collider currently supports these features:
- Normal features:
- Custom collision detection
- Ground, Wall, Celling detection
- Smooth movement on slopes
- Climb and desending steps
- Jump height and jump velocity
- Crouch and Run
- Extensible features
- Velocity-dependent multi-stage gravity
- Multi(Air) Jump
- Changing player capsule up direction
- Changing gravity direction
- Jump buffer and coyote time
- Dynamic features
- AddForce(Force, Impulse, Acceleration, ChangeVelocity) Method
- AddRelativeForce(Force, Impulse, Acceleration, ChangeVelocity) Method
- Move, MovePosition, MoveRotation Method
- SetVelocity Method
You can make your character Swim, Fly, Dash, Wall-Run with these methods.
This project requires the following Unity packages:
- Input System
- Universal Render Pipeline (URP)
Please ensure these are installed in your Unity project before importing this character controller.
To install this Kinematic Character Controller in your Unity project:
- Go to the Releases page of this repository.
- Download the latest
.unitypackage
file from the most recent release. - Open your Unity project.
- In Unity, go to Assets > Import Package > Custom Package.
- Select the downloaded
.unitypackage
file. - In the Import Unity Package window, ensure all items are selected and click 'Import'.
After importing, the character controller assets will be available in your project.
- Implement Dynamic Rigidbody methods:
- AddTorque()
- Rotate()
- Other related methods...
- Implement additional constraints:
- Distance constraint
- Maximum velocity constraint
- Spring constraint
- Joint constraint
- Other related constraints...
- Improve physics-based interactions:
- Push/pull functionality
- Enhanced object collision responses
- Performance optimization
- Add 2D controller
- Improve documentation and create API reference