unity连击的实现

12 篇文章 0 订阅

unity连击的实现

场景描述

在平时玩的RPG游戏中,经常会出现按下同一个按钮,会出现几个不同的连续的动作。今天来记录下这个功能的实现。

这里的人物图片感觉有点小,CSDN限制只能传2M以内的照片什么的。
这里写图片描述
这个就是四连击。在这里是一直点击一个按钮的,这里可以看见player的第一次攻击方向是向右的,第二次是向左的,第三次是向右的,第四次是一个拿剑向下杵下去的动作。

实现方法

先来看下代码,在PlaySkill里面


        SkillTemplate finalsk = GetCurSkill(sk);
        //动作发起着动画
        inst.AnimState.SetAction(finalsk.actionId);
        presk.sk = finalsk;
        presk.IsComboSkill = IsCombSkill(finalsk);
        presk.LoseComboTime = Time.time + finalsk.ComboMaxEffectTime;
        presk.CoolDownTime = Time.time + finalsk.actionCd;

先得到最后一次攻击(也就是当前的动作)的技能ID,对它进行动画播放,实现之后就可以把这个技能置于为 presk.sk 即为预先一次的攻击。
之后就是判断技能冷却时间和在相对较短的时间里会出现下次攻击就会出现下个攻击。

再看看GetCurSkill的代码

if (presk == null || !presk.IsComboSkill || presk.sk.skillPos != sk.skillPos)
        {
            return sk;
        }
        if (presk.IsComboSkill && presk.sk.skillPos == sk.skillPos)
        {
            if (presk.CoolDownTime < Time.time && presk.LoseComboTime > Time.time)
            {
                int skillid = presk.sk.nextSkillid;
                SkillTemplate newsk = GameDataManager.database.GetSkill(skillid);
                if (newsk != null)
                    return newsk;
            }
        }
        return sk;

其中,int skillid = presk.sk.nextSkillid;这句代码给了每次实现的ID轮回。第一个技能的下个技能ID是2,第二个技能下个技能ID是3,就这样一个轮回。
这里写图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值