I have an animation script that works fine, however when I change the animation value to include holding a wepond, it does nothing, until the player moves again, why is that? shouldent it update as soon as the local eulers are changed?
var Head : Transform;
var Legs : Transform[];
var Arms : Transform[];
var Torso : Transform;
private var Iswalking : boolean = false;
private var Isholding : boolean = false;
private var canim : String;
function UpdateAnimation(){
var s : String = "";
if (Iswalking)s+="Walking ";
else s+="Standin ";
if (Isholding) s+="Holding";
canim = s;
Changeanimation();
}
function UpdateAnim(i : int){
switch(i){
case 1:
if (Iswalking == false) return;
Iswalking = false;
break;
case 2:
if (Iswalking == true) return;
Iswalking = true;
break;
case 3:
if (Isholding == false) return;
Isholding = false;
break;
case 4:
if (Isholding == true) return;
Isholding = true;
break;
}
UpdateAnimation();
}
function Changeanimation(){
switch(canim){
case "Walking ":
Turnsleft = 15;
ammount = 80;
Legs[0].localEulerAngles = Vector3.zero;
Legs[1].localEulerAngles = Vector3.zero;
Arms[0].localEulerAngles = Vector3.zero;
Arms[1].localEulerAngles = Vector3.zero;
break;
case "Standin ":
Legs[0].localEulerAngles = Vector3.zero;
Legs[1].localEulerAngles = Vector3.zero;
Arms[0].localEulerAngles = Vector3.zero;
Arms[1].localEulerAngles = Vector3.zero;
break;
case "Walking Holding":
Legs[0].localEulerAngles = Vector3.zero;
Legs[1].localEulerAngles = Vector3.zero;
Arms[1].localEulerAngles = Vector3(270,340,0);
Arms[0].localEulerAngles = Vector3(270,40,0);
break;
}
}
private var Turnsleft : float;
private var ammount : float;
function Animate(){
switch(canim){
case "Walking ":
Legs[0].Rotate(Vector3(ammount*Time.deltaTime,0,0));
Legs[1].Rotate(Vector3(-ammount*Time.deltaTime,0,0));
Arms[0].Rotate(Vector3(ammount*Time.deltaTime,0,0));
Arms[1].Rotate(Vector3(-ammount*Time.deltaTime,0,0));
Turnsleft+=-1;
if (Turnsleft == 0){
Turnsleft = 30;
ammount *=-1;
}
break;
case "Walking Holding":
Legs[0].Rotate(Vector3(ammount*Time.deltaTime,0,0));
Legs[1].Rotate(Vector3(-ammount*Time.deltaTime,0,0));
Turnsleft+=-1;
if (Turnsleft == 0){
Turnsleft = 30;
ammount *=-1;
}
break;
}
}
function FixedUpdate(){
Animate();
Head.LookAt(Head.position + Camera.mainCamera.transform.forward);
}
any help?
thanks