2-9. 实现人物下蹲逻辑和动画

动画片段

做成动画片段,命名为 blueCrouchStart 和 blueCrouchIdle

动画状态机

这里我们再接触一个新的东西,Sub-State Machine,可以通过右键 Create Sub-State Machine 来实现

点开 Crouch ,把之前创建好的 blueCrouchStart 和 blueCrouchIdle 片段加进来

另外添加一个变量,isCrouch

当 isCrouch 为 true 的时候,从 blueIdle 切换到 Crouch

当 blueCrouchStart 完整播放完一帧之后,从 blueCrouchStart 切换到 blueCrouchIdle

当 isCrouch 为 false 的时候,从 blueCrouchIdle 切换到 Exit

代码控制动画状态机

首先我们需要获取下蹲的按钮是否按下,下蹲监听的是键盘的下键,所以我们只需要判断 inputDirection.y 是否 < -0.5f 就行了

然后在 PlayerAnimation 里面获取 isCrouch 并设置到动画状态机里面

下蹲时修改碰撞体大小

PlayerController 在第一次执行的时候,要获取原始碰撞体,以及碰撞体的大小和偏移

然后在下蹲的时候,修改大小和偏移。在取消下蹲的时候,还原大小和偏移

禁用下蹲时移动

在修改速度前,判断一下当前是否是下蹲状态。如果不是下蹲状态,才能进行修改速度(也就是才能够移动)

项目相关代码

代码仓库:https://gitee.com/nbda1121440/2DAdventure.git

标签:20240224_1216

posted @   hellozjf  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示