The System is designed to accomplish the following objectives:
Character Movement System allows to make a controller based on Unity physical engine, ensuring its proper interaction with other physical objects. At the same time, the System has a number of settings, which allow to make character movement more predictable and determined from the point of view of the player, which, together with built-in physics support, allows to provide the balance between control responsiveness and interaction with the environment.
The System consists of several levels of abstraction, which are shown on the general scheme of components interaction:
The mandatory level in this System is Physics level. Other levels are meant for construction of the composite behavior of character movement, so it is reasonable to use them in the projects with complicated movement logic.
This level is the basis of the entire System. It is here where three main constituents of character movement are being calculated:
CharacterRigidbodyPhysics component is the main Physics Level component. It is responsible for the following: