原理非常简单,只有当处于攻击A动画的50%进度左右,才会触发下一连击。记得要关闭动画的“退出时间”
public Animator playerAnimation;
private void Update()
{
Attack();
}
void Attack()
{
if (Input.GetKey(KeyCode.A))
{
AnimatorStateInfo AnimSta = playerAnimation.GetCurrentAnimatorStateInfo(0);
if (AnimSta.IsName("Idle_A"))
{
playerAnimation.SetInteger("Atk", 1);
}
else if (AnimSta.IsName("Atk1") && AnimSta.normalizedTime > 0.5f && AnimSta.normalizedTime <= 1.0f)
{
playerAnimation.SetInteger("Atk", 2);
if (AnimSta.IsName("Atk1") && AnimSta.normalizedTime >= 1.0f)
{
playerAnimation.SetInteger("Atk", 0);
}
}
else if (AnimSta.IsName("Atk2") && AnimSta.normalizedTime > 0.5f && AnimSta.normalizedTime <= 1.0f)
{
playerAnimation.SetInteger("Atk", 3);
}
else if (AnimSta.IsName("Atk3") && AnimSta.normalizedTime >= 1.0f)
{
playerAnimation.SetInteger("Atk", 0);
}
}
else {
playerAnimation.SetInteger("Atk", 0);
}