I currently have idle, walk and sword attack animations running fine for my character using the script from unity docs. The problem I am having is when I try add another animation. The newer animation added will stop all the rest from working, for instance if I add “WalkLeft” that will be the only one to play.
The input settings are done so would this small piece of code just need to be added to the script or have a made a mistake:
if (Mathf.Abs(Input.GetAxis("Horizontal")) > 0.1)
animation.CrossFade("WalkLeft");
The code I have used is the following one:
function Start () {
// Set all animations to loop
animation.wrapMode = WrapMode.Loop;
// except shooting
animation["SwordAttack1"].wrapMode = WrapMode.Once;
// Put idle and walk into lower layers (The default layer is always 0)
// This will do two things
// - Since shoot and idle/walk are in different layers they will not affect
// each other's playback when calling CrossFade.
// - Since shoot is in a higher layer, the animation will replace idle/walk
// animations when faded in.
animation["SwordAttack1"].layer = 1;
// Stop animations that are already playing
//(In case user forgot to disable play automatically)
animation.Stop();
}
function Update () {
// Based on the key that is pressed,
// play the walk animation or the idle animation
if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.1)
animation.CrossFade("Walk");
else
animation.CrossFade("Idle");
// Shoot
if (Input.GetButtonDown ("Fire1"))
animation.CrossFade("SwordAttack1");
}
Any help would be appreciated.