Unity-Kinematic Character Controller U3792

Kinematic Character Controller

Programmable Render Pipeline (SRP) compatibility
The Unity Programmable Render Pipeline (SRP) is a feature that allows you to control rendering through C# scripts. SRP is the underlying technology that supports the Universal Rendering Pipeline (URP) and the High Definition Rendering Pipeline (HDRP).
Unity version
Built-in rendering pipeline
Universal Rendering Pipeline (URP)
High Definition Rendering Pipeline (HDRP)
2020.3.30f1
compatible
Not compatible
Not compatible
Additional compatibility information
The example scenes work with built-in (non-SRP) renderer, but there is nothing preventing you from using the character controller in URP and HDRP projects

describe
*This resource requires programming knowledge and support for implementing specific game features may be limited*

What is a Kinematic Character Controller?
Kinematic Character Controller is a relatively low-level character controller solution that is not tied to any specific game type and integrates perfectly with any project/architecture while minimizing friction or bloat. lowest. Instead of rigid body physics, it uses a “collision and sliding” algorithm to make movement perfectly smooth, precise, and responsive. Note that its “kinematic” nature means that it is not automatically pushed by forces or rigid bodies. These types of interactions must be explicitly scripted.

Who is it suitable for?
Using this resource pack requires strong knowledge of programming and 3D mathematics. This is by no means a “plug and play” solution, it requires you to write your own input, lens, animation and speed/rotation handling code. It is designed for users who want complete freedom in writing game-specific character controllers, but with a solid foundation.

how to use?
You add the “KinematicCharacterMotor” component to the GameObject and then create your own custom class that implements the ICharacterController interface and assigns it to the dynamics system to provide various “callbacks” to the dynamics system. Examples of these callbacks include: UpdateVelocity, UpdateRotation, IsColliderValidForCollisions, etc…

What does it contain?
This resource pack contains:
– The “core” components that users will use to build their own character controllers
– A “sample” character controller designed to demonstrate the capabilities of the system (i.e. what you see in the WebGL demo)
– Feature “Tours,” a series of tutorials that provide examples of how to implement common features (e.g., double jump, ladder climbing, swimming, root action, etc.).

Main functions and features
– Capsule based collision
– Smooth interpolated motion
– No GC allocations and several quality/performance options
– Handle step movement
– Ground alignment (won’t “pop” off slopes)
– Properly handles common character controller potential pitfalls such as slowly shrinking corridors, turning corners, and concave colliders
– Support pushing or standing on dynamic rigid bodies
– Supports mobile platforms without any parent object construction.
– Supports any gravity and upward direction
– Support for locking physics/movement to a specific plane (for 2.5D games)
– Support ignoring specific collisions
– Designed with the web in mind. You have explicit control over selected role impersonations, allowing you to use this resource bundle in an authoritative server architecture and re-emulate input.

___________________

WebGL demo
User Guide
guided tour
Support topics
related keywords
collision
Motion
Character Controller
Platformer
Character
kinematic
movement
Moving platforms
Camera
FPS
Physics
Controller