HMM
1
<想要实现的功能>
在切换到 accel_start 状态后,即使持续仅输入 charge 和 accel 键(即已释放方向键),也希望角色能继续沿当前方向直线前进。
<遇到的问题>
目前,在切换到 accel_start 状态后,即使持续输入 charge 和 accel 键,一旦释放方向键,玩家对象就会停留在原地,并持续显示 03_boost 动画。
我一边向 ChatGPT 提问,一边尝试诸如“将变量 last_dir 赋值为 -1/0/1”之类的建议,但尝试了各种方法都未能成功,现在感到十分困惑。

我在本地稍微测试了一下。
不清楚这是bug还是设计行为,但在按下移动键后立即按下加速键时,车辆会前进;然而,如果在按下移动键后稍等片刻再按下加速键,车辆似乎会停止。(可能是因为移动键输入与停止指令发生了冲突……?)
我将稍向开发团队确认此事。
1 个赞
HMM
3
感谢您的确认。
我突然想到,是否可以在从“moving”状态进入“accel_start”状态后,即使不再按下方向键,也能继续保留之前由方向键产生的上下左右移动速度?
如果能够实现这样的处理,即使只输入了 charge 和 accel 的按键,玩家节点是否也能沿着之前的行进方向继续移动?
我考虑过通过惯性控制来实现,并尝试在链接的“其他条件设置”或状态的“添加执行动作”中寻找相关选项,但未能找到。
基本上,作为物理处理,当与地面等接触时会减速并停止。
关于此类处理,可考虑以下两点:
- 尝试 MoveandJumpSettings 中的“加速移动”。
- 尝试将 GameObject 的刚体类型从 Ground 改为 Floating。
大概就是这样。建议您尝试一下。
1 个赞
HMM
5
在尝试使用“竞合”一词作为线索进行反复试验后,我成功实现了以下期望的行为:
- 在 moving 和 accel_start 之间插入另一个状态。
- 在该插入的状态中,将 up_move_key_index 等上下左右四个方向属性的值更改为“未设置”。
- 在该状态的第五个执行动作中添加“向显示方向移动”。
感谢您的建议!
1 个赞