From my first post i was having this problem and some one asked for the entire code, well here it is, also can you tell me what was the problem with it and how i can fix it if i get another problem with this?
var normalSpeed:float = 6.0;
private var speed:float = normalSpeed;
var runSpeed:float = 12.0;
private var jumpSpeed:float = speed*1.7;
var gravity:float =20.0;
private var walkTime:int=0;
private var moveDirection:Vector3 = Vector3.zero;
static var grounded:boolean=false;
private var controller:CharacterController;
private var flags:CollisionFlags;
private var tr:int = 90;
function Start(){
animation.wrapMode = WrapMode.Loop;
animation["run"].layer=-1;
animation["walk"].layer=-1;
animation["idle"].layer=-1;
animation.SyncLayer( -1);
animation["jump"].layer=10;
animation["jump"].wrapMode=WrapMode.Once;
animation.SyncLayer(10);
animation.Stop();
animation.Play("idle");
}
function FixedUpdate (){
if(grounded){
moveDirection = new Vector3(Input.GetAxis("Horizontal"),0,0);
moveDirection*=speed;
if(Input.GetButton("Jump")){
moveDirection.y = jumpSpeed;
animation.CrossFade("jump");
}
***"My problem is the else below"***
}
}else{
moveDirection=new Vector3(Input.GetAxis("Horizontal"),moveDirection.y/speed,
moveDirection*=speed;
moveDirection.y -=gravity*Time.deltaTime;
controller=GetComponent(CharacterController);
flags=controller.Move(moveDirection*Time.deltaTime);
grounded=(flags & CollisionFlags.CollidedBelow) !=1;
if(moveDirection.x>0){
tr=90;
}else if(moveDirection.x<0){
tr=270;
}
transform.eulerAngles.y-=(transform.eulerAngles.y-tr)/5;
if(Input.GetAxis("Horizontal")>.2|| (Input.GetAxis("Horizontal")<-.2)){
if (walkTime>40){
animation.CrossFade("run");
speed=runSpeed;
}else{
walkTime++ ;
animation.CrossFade("walk");
speed = normalSpeed;
}
jumpSpeed=speed*1.7;
}else{
walktime=0;
animation.CrossFade("idle");
}
}
@script RequireComponent(CharacterController)