unity animator 连招实现

思路来源于:(155条消息) unity连招系统_小泽承平的博客-CSDN博客


原理:判断给定时间间隔内玩家有没有触发攻击,如果有则进入下一个动作,如果没有则自动返回到Exit状态 ,然后回到any State指向的初始动画。

在原方法的基础上做了一点改进,连线的步骤也省略了。

我这里实现的是三连击,把animator里的三个攻击动画都连到Exit上,如下图。

 下面是代码:

  List<string> attackAnimList = new List<string>(new string[] { "attack1", "attack2", "attack3" });//将攻击动画放数组里
    public int currentAttack = 0;//连招计数
    public int attackNum = 3;//连招数量
    public float restTime;//连招重置时间
    private float timer;

 连招的数量attackNum根据实际需求修改,我这里是3连招,重置时间也根据喜好设置。

void Update()
    {     
        if (Input.GetMouseButtonDown(0) && currentAttack < attackNum && !anim.GetCurrentAnimatorStateInfo(0).IsName(attackAnimList[currentAttack]))
        {                                                                
            anim.Play(attackAnimList[currentAttack]);            
            currentAttack++;
            timer = 0f;

        }
        if (currentAttack > 0)
        {
            timer += Time.deltaTime;
            if (timer >= restTime)//超过时间间隔
            {
                currentAttack = 0;
            }
        }
        if (currentAttack == attackNum)//当到达最后一个动作的时候重置
        {
            currentAttack = 0;
        }
    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值