BazVehicleMovementSettings
适用于任何游戏对象的 360° 俯视移动。支持坦克模式(原地转向)或车辆模式(仅在移动时转向)。可选平滑加速。
下载:
baz_vehicle_movement_settings.gd (10.0 KB)
功能说明
让您的游戏对象自由旋转至任意方向,并沿其朝向移动。
- 坦克模式:即使静止时也可原地旋转
- 车辆模式:仅在向前或向后移动时才能旋转
启用 Accelerated(加速) 可实现平滑的加速和减速效果。
设置步骤
- 将
baz_vehicle_movement_settings.gd保存到项目中的任意位置。打开要控制的游戏对象场景,添加一个子 Node2D,并附加该脚本。
- 在父游戏对象上设置以下内容:
| 设置项 | 值 |
|---|---|
| Is Release Move Control | 开启 |
| Animation Sets > Auto Y Flip Animation | 关闭(适用于每个动画) |
关闭 Y 轴翻转非常重要。否则在倒车时精灵会被镜像,从而破坏 360° 旋转效果。
-
绘制您的精灵时,请确保其指向右侧(Godot 的前进方向)。如果指向向上,请在 2D 视口中将游戏对象节点旋转 -90°。您设置的任何旋转角度都将成为游戏中初始的朝向。
-
配置检查器(Inspector):
| 字段 | 功能说明 |
|---|---|
| Move Forward / Backward / Turn Left / Turn Right Input | 输入动作下拉菜单。默认为 arrow_up/down/left/right。选择“Unset”可禁用。 |
| Movement Type | 坦克或车辆模式 |
| Forward / Backward Speed | 最高速度(像素/秒) |
| Left / Right Rotation Speed | 转向速率(度/秒) |
| Accelerated | 关闭 = 瞬间达到最高速度。开启后将显示加速/减速字段 |
| Debug Enabled | 在控制台打印移动信息 |
将鼠标悬停在任意字段上可查看工具提示。
-
在游戏对象的可视化脚本中,选择您的移动状态(通常为 Move),并添加一个 InvokeScript 动作:
- Target Node: BazVehicleMovementSettings
- Target Method: apply_vehicle_movement
- Invoke Timing: OnStateUpdate
-
(可选)对于停止/受伤/死亡状态,可添加另一个 InvokeScript 动作:
- Target Method: stop_vehicle_movement
- Invoke Timing: OnStateEnter
条件判断
提供五个 is_* 条件供 ScriptConditionEvaluator 使用(适用于空闲与移动动画之间的切换):
| 方法 | 为真时的条件 |
|---|---|
| is_moving | 速度非零 |
| is_moving_forward | 速度为正 |
| is_moving_backward | 速度为负 |
| is_tank_mode | 移动类型为坦克模式 |
| is_vehicle_mode | 移动类型为车辆模式 |
提示
- 输入动作未显示?请在“项目设置 > 输入映射”中定义。内置的
ui_*动作为故意隐藏。 - “Unset”可禁用绑定。适用于单向车辆或静止炮塔。
- 加速模式将“前进/后退速度”作为最大上限。加速值控制达到该速度的快慢。
- 脚本在启动时会自动将 CharacterBody2D 的运动模式设置为 Floating。这是实现 360° 移动所必需的,无需额外配置。




