目 录CONTENT

文章目录

【交错地 - 01】人物

千年的霜雪
2024-10-26 / 0 评论 / 0 点赞 / 7 阅读 / 0 字 / 正在检测是否收录...

人物输入响应

  1. 首先在project setting界面对输入进行绑定
  • 这里直接手搓了状态机,所以将左右移动的映射值设置为-1与1
  • 由于左右移动是持续输入,所以应该在Axis mapping下绑定
  • 跳跃等单次输入,就可以绑定在Action mapping下

Timelooping_1-1.png

  1. 人物左右移动实现
  • 首先获得对应的键盘输入事件
  • 获取Controller的旋转,根据旋转获得向前的向量
  • 调用Add Movement Input事件,传入向前的方向与输入的值

Timelooping_1-2.png
图中其他的方法都是用于处理动画的

  1. 人物跳跃实现
  • 获得对应的键盘输入事件
  • 调用自带的Character Movement组件,并调用组件中的Is Falling方法,判断是否可以起跳
  • 如果可以起跳,就执行Character自带的Jump方法

Timelooping_1-4.png
Timelooping_1-5.png

  1. 动画切换实现
  • 动画切换主逻辑编写在左右移动输入后
  • 这里使用了枚举类型,用来定义动画状态

Timelooping_1-6.png

  • 创建一个该枚举类型的变量Movement State,用于保存当前状态

  • 对于左右移动动画切换

    • 根据输入映射的值判定,由于在项目设置中已经规定了向右为1,左为-1;所以可以使用多个Branch判定
  • 对于跳跃动画的切换

    • Is Falling方法可判断玩家是否在空中
    • 然后可以获取玩家的速度向量,使用Get Velocity方法,然后判断竖直方向速度,为正是在跳跃,为负是在下落
  • 当玩家既没有在空中,又没有在左右移动,就切换为空闲动画

  • 切换动画可以用枚举变量配合Switch方法,调用Set Flibpook

Timelooping_1-3.png

0

评论区