5-2. 滑铲的逻辑和动画的实现
1.1-2. 安装 Unity 引擎和代码编辑器2.1-3. 素材导入和整理3.1-4. 场景绘制和叠层设置4.1-5. 有规则和动态瓦片5.2-1. 设置人物及基本组件6.2-2. 创建及配置新输入系统7.2-3. 实现移动和翻转8.2-4. 实现人物跳跃9.2-5. 物理环境监测及绘制10.2-6. 创建人物基本动画11.2-7. 人物行走设定12.2-8. 创建人物跳跃动画13.2-9. 实现人物下蹲逻辑和动画14.2-10. 人物属性及伤害计算15.2-11. 受伤和死亡的逻辑和动画16.2-12. 三段攻击动画的实现17.2-13. 实装攻击判定18.3-1. 野猪 - 基本的移动逻辑和动画19.3-2. 野猪-撞墙判定和等候计时20.3-3. 野猪-受伤及死亡的逻辑和动画21.3-4. 有限状态机&抽象类多态22.3-5. 追击状态的转换23.3-6. 蜗牛-基本的移动逻辑和动画24.3-7. 蜗牛 - 特殊技能状态的实现25.3-8. 蜜蜂 - 基本的移动逻辑和动画26.3-9. 蜜蜂 - 追击和攻击的实现27.4-1. 创建人物状态栏28.4-2. 血量更新逻辑的实现29.5-1. 滑墙及蹬墙跳的实现
30.5-2. 滑铲的逻辑和动画的实现
31.6-1. 摄像机跟随及攻击抖动实现32.6-2. 音源设置和音效播放33.6-3. 水和荆棘的逻辑实现34.7-1. 人物可互动标识35.7-2. 场景互动的逻辑实现36.7-3. 场景管理和切换37.7-4. 场景加载后的执行逻辑38.7-5. 场景淡入淡出效果39.7-6. 主场景制作40.7-7. 实现新的冒险逻辑41.8-1.存储点及画面效果42.8-2. 数据结构及坐标保存加载43.8-3. 人物数值及场景的保存加载44.8-4. 制作游戏结束面板45.8-5. 序列化保存数据文件46.9-1. 实现移动设备屏幕操控47.9-2. 暂停面板及声音控制48.9-3. 打包生成游戏49.05. 生成房间之间连线50.06. 实现随机地图动画
我们需要快速打断滑铲,所以没用结束滑铲
动画状态机中,使用了 isSlide 这个布尔变量
New State -> blueSlide0,需要 isSlide = true,立即进入
blueSlide0 -> blueSilde1,需要 isSlide = true,完整播放一次之后进入
当 isSlide = false 的时候,如果在 blueSlide0 或 blueSlide1,就进入 Exit
输入控制器
按键盘上的 K 或者 手柄上的LB 触发滑铲
代码
监听按键
Slide 函数
当前没有在滑铲,在地面上,有足够的能量,才能进入滑铲状态
滑铲的时候会先确定一个目标点,然后将自己的层变成 Enemy,这样避免滑铲时受到伤害,然后开启一个滑铲的协程,并扣除滑铲需要的能量
TriggerSlide
在这个协程中,会让刚体不断向目标移动,在移动的过程中,如果刚体不在地面上,或者撞墙了(面朝左撞左墙 或者 面朝右撞右墙),都会退出协程
退出协程的时候,isSlide 变为 false,并且角色的层恢复到 Player
Character.OnSlide
滑铲会消耗能量,能量消耗之后,复用之前的扣血代码,OnHealthChange 是个 ScriptableObject,它会唤起监听它的人,也就是 UIManager
UIManager.OnHealthEvent
现在这个方法不但会调整 UI 上的血量,还会调整 UI 上的能量条
PlayerStatBar.OnPowerChange
isRecovering 设置为 true,以便后续 PlayerStatBar 的 Update 可以慢慢恢复能量条
PlayerStatBar.Update
当能量在恢复中的时候,会获取 Character 中当前的能量,算出百分比,当百分比为1之后就不再增多了
数值
PlayerController
Character
项目相关代码
合集:
勇士传说
分类:
unity / 勇士传说
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?