2-12. 三段攻击动画的实现
创建动画片段
修改动画状态机
增加 Attack Layer,把刚才制作好的动画片段加进去
再增加两个变量,bool 类型的 isAttack 和 trigger 类型的 attack
New State -> blueAttack1,isAttack = true 并且 attack 触发
blueAttack1 -> blueAttack2,isAttack = true 并且 attack 触发,有 exit time,为 0.9,表示在动画播放 90% 以前触发就能进入二段攻击;另外当 exit time 为 1 之后进入 exit
blueAttack2 -> blueAttack3,isAttack = true 并且 attack 触发,同游 exitTime 0.9 前触发进入三段攻击,1进入 exit
blueAttack3 -> exit,exitTime = 1 进入
修改输入控制器
用键盘上的 J 键或者手柄上的 南 键表示攻击键
实现攻击代码
在 PlayerController 里面,当按下攻击键之后,进入 PlayerAttack 方法
在 PlayerAttack 方法里面,触发一个 Trigger
在 PlayerAnimation 里面,还需要每帧都检测是否在攻击中
退出攻击的逻辑
现在按下攻击键,isAttack 一直为 true,这会导致我们进行三段攻击之后,会再多出一次攻击。因此我们需要像之前的 Hurt 动画一样,在动画结束之后把 Hurt 状态改回来
这里我们给每个动画片段增加 Attack Finish 脚本
AttackFinish 在 OnStateExit 里面把 isAttack 设置为 false,给 blueAttack2 和 blueAttack3 都绑定这个脚本。这样就能避免三段攻击之后会多一次攻击
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?