在释放方向键后,若输入其他按键,仍可沿之前方向继续直行的方法

<想要实现的功能>

在切换到 accel_start 状态后,即使持续仅输入 chargeaccel 键(即已释放方向键),也希望角色能继续沿当前方向直线前进。

<遇到的问题>

目前,在切换到 accel_start 状态后,即使持续输入 chargeaccel 键,一旦释放方向键,玩家对象就会停留在原地,并持续显示 03_boost 动画。

我一边向 ChatGPT 提问,一边尝试诸如“将变量 last_dir 赋值为 -1/0/1”之类的建议,但尝试了各种方法都未能成功,现在感到十分困惑。

chrome-capture-2025-08-20

我在本地稍微测试了一下。

不清楚这是bug还是设计行为,但在按下移动键后立即按下加速键时,车辆会前进;然而,如果在按下移动键后稍等片刻再按下加速键,车辆似乎会停止。(可能是因为移动键输入与停止指令发生了冲突……?)

我将稍向开发团队确认此事。

1 个赞

感谢您的确认。
我突然想到,是否可以在从“moving”状态进入“accel_start”状态后,即使不再按下方向键,也能继续保留之前由方向键产生的上下左右移动速度?

如果能够实现这样的处理,即使只输入了 charge 和 accel 的按键,玩家节点是否也能沿着之前的行进方向继续移动?

我考虑过通过惯性控制来实现,并尝试在链接的“其他条件设置”或状态的“添加执行动作”中寻找相关选项,但未能找到。

基本上,作为物理处理,当与地面等接触时会减速并停止。

关于此类处理,可考虑以下两点:

  1. 尝试 MoveandJumpSettings 中的“加速移动”。
  2. 尝试将 GameObject 的刚体类型从 Ground 改为 Floating。

大概就是这样。建议您尝试一下。

1 个赞

在尝试使用“竞合”一词作为线索进行反复试验后,我成功实现了以下期望的行为:

  1. 在 moving 和 accel_start 之间插入另一个状态。
  2. 在该插入的状态中,将 up_move_key_index 等上下左右四个方向属性的值更改为“未设置”。
  3. 在该状态的第五个执行动作中添加“向显示方向移动”。

感谢您的建议!

1 个赞