public var xAxis : boolean = true;
public var zAxis : boolean = true;
public var jumpEnabled : boolean = true;
public var moveInAir : boolean = true;
public var speed : float = 5.0;
public var airSpeed : float = 5.0;
public var jumpSpeed : float = 5.0;
public var gravity : float = 10.0;
public var speedIncreaserEnabled : boolean = true;
public var minSpeed : float = 0.0;
public var maxSpeed : float = 10.0;
public var increaseStepSize : float = 1.0;
private var grounded : boolean = false;
private var grounded2 : boolean = false;
private var moveDirection : Vector3 = Vector3.zero;
private var moveDirectionAir : Vector3 = Vector3.zero;
private var getHor = 0.0;
private var getVer = 0.0;
private var manual : boolean = false;
function Start()
{
if(speedIncreaserEnabled) {
speed = minSpeed;
}
}
function FixedUpdate()
{
if(xAxis) {
getHor = Input.GetAxis("Horizontal");
}
if(zAxis) {
getVer = Input.GetAxis("Vertical");
}
if(speedIncreaserEnabled)
{
if((getHor!=0)||(getVer!=0)) {
if(speed<maxSpeed) {
speed+= increaseStepSize;
}
}
else {
if(speed>minSpeed) {
speed -= increaseStepSize;
}
}
airSpeed = speed;
}
if(grounded)
{
moveDirectionAir.x = 0;
moveDirectionAir.z = 0;
moveDirection = new Vector3(getHor, 0, getVer);
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
if ((Input.GetButton ("Jump"))&&(jumpEnabled)) {
moveDirection.y = jumpSpeed;
}
}
else if(moveInAir)
{
if((getHor>0)||(getHor<0)) {
moveDirection.x = 0;
}
if((getVer>0)||(getVer<0)) {
moveDirection.z = 0;
}
moveDirectionAir = new Vector3(getHor, 0, getVer);
moveDirectionAir = transform.TransformDirection(moveDirectionAir);
moveDirectionAir *= airSpeed;
}
moveDirection.y -= gravity * Time.deltaTime;
var controller : CharacterController = GetComponent(CharacterController);
var flags = controller.Move(moveDirection * Time.deltaTime);
if(moveInAir) {
controller.Move(moveDirectionAir * Time.deltaTime);
}
grounded = (flags & CollisionFlags.CollidedBelow) != 0;
}
@script RequireComponent(CharacterController)