unity连击的实现

来源:互联网 发布:成都到知美术馆 编辑:程序博客网 时间:2024/06/10 15:12

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,就这样一个轮回。
这里写图片描述

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果手机无服务怎么办 京东买电脑没发票怎么办 买东西发票丢了怎么办 在天猫上买了假货怎么办 苹果发票丢了怎么办 iphone8屏幕摔了怎么办 在手机店买到翻新机怎么办 信用卡网上买东西退款怎么办 在唯品会买到假的护肤品怎么办 天猫买东西发票怎么办 支付宝无法收款怎么办 买到苹果假货怎么办 16周岁怎么办手机分期 淘宝打假扣分了怎么办 买到不合格食品怎么办 买到不合格面膜怎么办 买假货怎么处理怎么办 咸鱼买手机被骗怎么办 华为p9超级卡怎么办 花呗分期退货怎么办 华为荣耀10网咯好卡怎么办 官网买手机坏了怎么办 三星c5发热严重怎么办 iphone7一直重启怎么办 预售商品不发货怎么办 vivo手机跑电快怎么办 手机跑电太快了怎么办 手机home键失灵怎么办 小米手机发货慢怎么办 京东卡1元流量怎么办 苹果手机系统太大怎么办 苹果电池用电快怎么办 苹果6手机漏电怎么办 iphone7一直e网怎么办 天猫额度不够怎么办 手机分期被起诉怎么办 手机分期利息高怎么办 手机分期付款没还怎么办 iphone收据丢了怎么办 京东账号登不上怎么办 京东账号冻结怎么办