Generic filters
Exact matches only
Search in title
Filter by Custom Post Type
Search in project

Changing the Input Controller

The Input Controller system for Atavism can be easily changed by creating a new C# script that inherits from the AtavismInputController class. Here is an example of the core basics that are needed:

  public class ExampleInputController : AtavismInputController  {

// Use this for initialization
void Start () {
    // Need to tell the client that this is the new active input controller

public override Vector3 GetPlayerMovement() {
    Vector3 playerMovementVector =;
    // Do your input handling here, and update the playerMovementVector to contain the
    // desired movement. The vector gets normalized in the MobController, then the players speed property will be
    // applied to it.
    return playerMovementVector;

public override void RunCameraUpdate() {
    // Work out where the camera should now be, and set Main Camera to that position/rotation

All the class needs is the GetPlayerMovement() and RunCameraUpdate() function. Fill those functions with the logic to handle input and either update the playerMovementVector or update the camera’s position and rotation.

Once the script has been made, add it to the MainCamera object in the MainWorld or equivalent in-game scenes, and turn off or delete the Atavism3rdPersonInputController component.