Purpose

The System is designed to accomplish the following objectives:

  1. Realization of character controller with responsive control and support of physical interactions (Rigidbody responsive controller);
  2. Convenient adjustment and use of the modes of movement/ rotation/ physical configuration of the character;
  3. Compilation/ dynamic modification of character movement behavior from movement components;
  4. Extensibility of the system by adding user movement components.

Description

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:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/be9781b9-2297-4af0-8d18-8db0a2738bcc/Untitled.png

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.

Physics Level

This level is the basis of the entire System. It is here where three main constituents of character movement are being calculated:

  1. Physical state (CharacterRigidbodyPhysics component);
  2. Movement (CharacterMotionPhysics component);
  3. Rotation (CharacterRotationPhysics component).

Character Rigidbody Physics

CharacterRigidbodyPhysics component is the main Physics Level component. It is responsible for the following: