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

为何CharacterBody2D节点位置更新但角色不移动?

解决CharacterBody2D实际移动但视觉不动的问题

从你的日志能看到角色的position.x确实在持续变化,说明移动逻辑是正常的。问题出在Camera2D的节点层级上——你把Camera2D设为CharacterBody2D的子节点了,当CharacterBody2D移动时,Camera会跟着它一起移动,屏幕视角始终以角色为中心,所以视觉上看起来角色没动。

解决方案

  • 调整节点层级:在场景编辑器里,把Camera2D从CharacterBody2D的子节点拖出来,放到场景根节点下,和CharacterBody2D同级。这样角色移动时,Camera不会跟着走,就能看到角色在屏幕里移动了。
  • 如果需要相机跟随角色:给根节点下的Camera2D添加如下脚本,实现基础跟随(也可以用Godot内置的平滑跟随功能):
extends Camera2D

@onready var player = $CharacterBody2D # 替换成你的角色节点实际名称

func _physics_process(delta):
    position = player.position

快速验证

你可以先临时禁用Camera2D(点击节点旁的眼睛图标),运行场景后如果能看到角色移动,就完全确认是Camera的问题了。

内容的提问来源于stack exchange,提问作者Allan Juan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 21:52:03