代码编织梦想

连招动画切换方式(一)

此方法可以实现的连击效果:
通过连续点击鼠标左键
攻击1 接 攻击2 接 攻击3 结束
在任意攻击动作中停止点击鼠标左键,则连击中断
三连击
二连击

一、Animator中的设置

先将一套连招的几个动作拖入Animator窗口中
Animator中
添加一个int类型的Parameter
添加Parameter
设置动画的退出条件
设置动画的退出条件
分别为三个攻击动画设置进入条件
设置动画的进入条件
Inspector面板
将动画Attack1 Attack2 Attack3 的进入条件分别设置为
Combo Equals 1
Combo Equals 2
Combo Equals 3

二、代码部分

为角色挂上这个脚本

using UnityEngine;

public class ComboTest : MonoBehaviour
{
    //获取动画组件
    private Animator anim;
    //是否开始连击
    private bool startCombo;
    //当前连击次数
    private int combo;

    private void Start()
    {
        //获取动画组件
        anim = GetComponent<Animator>();
    }

    private void Update()
    {
        //如果按下鼠标左键
        if (Input.GetMouseButtonDown(0))
        {
            //如果Combo值为0
            if (anim.GetInteger("Combo") == 0)
            {
                //将Combo值增加1
                combo++;
                //播放Attack1
                anim.SetInteger("Combo", combo);
            }

            //如果在可以连击的时间范围中
            if (startCombo)
            {
                //将Combo值增加1
                combo++;
                //如果combo值大于3
                if (combo > 3)
                {
                    ResetCombo();
                }
                //播放后续的攻击动画
                anim.SetInteger("Combo", combo);
                startCombo = false;
            }

            Debug.Log("当前连击次数:" + combo);
        }
    }

    //动画事件中 StartComboState() 和 EndComboState() 之间的时间段里可以进行连击
    private void StartComboState()
    {
        startCombo = true;
    }

    private void EndComboState()
    {
        startCombo = false;
    }

    /// <summary>
    /// 重置连击
    /// </summary>
    private void ResetCombo()
    {
        combo = 0;
        anim.SetInteger("Combo", combo);
        EndComboState();
    }
}

三、Aniamtion中的设置

在每个动画中合适的时间点添加事件
StartComboState() 和 EndComboState() 之间是可以进行连击的时间
每个动画的最后添加 ResetCombo()

添加动画事件

四、总结

这是笔者在看Siki学院Unity动画教程时,突然想到的一种设置连击动画的方法;
方法本身可能不太成熟,但能为各位带来一丝灵感就好;
后续或许会更新更多关于连招动画的分享;
欢迎大家提出建议,指出问题;
感谢观看!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Dugege007/article/details/128007018