[脚本库] Baz 车辆移动设置

BazVehicleMovementSettings

适用于任何游戏对象的 360° 俯视移动。支持坦克模式(原地转向)或车辆模式(仅在移动时转向)。可选平滑加速。

下载:
baz_vehicle_movement_settings.gd (10.0 KB)

功能说明

让您的游戏对象自由旋转至任意方向,并沿其朝向移动。

  • 坦克模式:即使静止时也可原地旋转
  • 车辆模式:仅在向前或向后移动时才能旋转

启用 Accelerated(加速) 可实现平滑的加速和减速效果。

设置步骤

  1. baz_vehicle_movement_settings.gd 保存到项目中的任意位置。打开要控制的游戏对象场景,添加一个子 Node2D,并附加该脚本。

  1. 在父游戏对象上设置以下内容:
设置项
Is Release Move Control 开启
Animation Sets > Auto Y Flip Animation 关闭(适用于每个动画)

关闭 Y 轴翻转非常重要。否则在倒车时精灵会被镜像,从而破坏 360° 旋转效果。

  1. 绘制您的精灵时,请确保其指向右侧(Godot 的前进方向)。如果指向向上,请在 2D 视口中将游戏对象节点旋转 -90°。您设置的任何旋转角度都将成为游戏中初始的朝向。

  2. 配置检查器(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 在控制台打印移动信息

将鼠标悬停在任意字段上可查看工具提示。

  1. 在游戏对象的可视化脚本中,选择您的移动状态(通常为 Move),并添加一个 InvokeScript 动作:

    • Target Node: BazVehicleMovementSettings
    • Target Method: apply_vehicle_movement
    • Invoke Timing: OnStateUpdate
  2. (可选)对于停止/受伤/死亡状态,可添加另一个 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° 移动所必需的,无需额外配置。
2 个赞