SingleInputController

Just a simple modified version of FPSInputController.

/* One hand input controller. Uses left/right keys for rotating player
 * and up/down keys for moving forward/backwards.
 * */
using UnityEngine;
using System.Collections;

// Require a character controller to be attached to the same game object
[RequireComponent(typeof(CharacterMotor))]

public class SingleInputController : MonoBehaviour {
	public float rotationSpeed = 3.0f;
	private CharacterMotor motor;

	void Awake () {
		motor = GetComponent<CharacterMotor>();
	}

	void Update () {
		// Rotate character on left/right.
		transform.Rotate(0, Input.GetAxis("Horizontal") * rotationSpeed, 0);

		// Walk forward/backward on up/down.
		Vector3 directionVector = new Vector3(0, 0, Input.GetAxis("Vertical"));

		if (directionVector != Vector3.zero) {
			var directionLength = directionVector.magnitude;
			directionVector = directionVector / directionLength;
			directionLength = Mathf.Min(1, directionLength);
			directionLength = directionLength * directionLength;
			directionVector = directionVector * directionLength;
		}

		// Apply the direction to the CharacterMotor
		motor.inputMoveDirection = transform.rotation * directionVector;
		motor.inputJump = Input.GetButton("Jump");
	}
}