You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GDScript中KinematicBody旋转后无法沿朝向移动的解决方法

修复第三人称控制器朝向移动问题

你的问题出在直接使用世界空间的X轴(vel.x)控制前进,角色旋转后自身朝向的前进方向已和世界X轴不一致,需要改用角色局部空间的方向向量计算移动。

修改后的代码如下:

func _physics_process(delta):
    vel = Vector3.ZERO  # 重置整个速度向量
    
    if Input.is_action_pressed("move_forward"):
        # 使用角色自身的局部X轴方向(随旋转自动更新)计算移动
        vel += transform.basis.x * SPEED * delta
    if Input.is_action_pressed("turn_left"):
        rotate_y(deg2rad(ROTATION_INTENSITY))
    
    move_and_collide(vel)

关键修改说明:

  • 将vel.x = 0改为vel = Vector3.ZERO:确保每帧完全重置速度,避免残留其他方向的速度干扰。
  • 替换vel.x += SPEED * delta为vel += transform.basis.x * SPEED * delta:transform.basis.x是角色局部X轴在世界空间中的方向向量,角色旋转后该向量会同步更新朝向,移动方向自然跟随角色当前朝向。

内容的提问来源于stack exchange,提问作者isaiah day

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:20:04