1.7 KiB
2026-10-16
修复:第一人称相机高达 1.16 m(玩家缩放被静默抹掉)
-
现象:进游戏后第一人称视角像一米多高看得见 woman 的胸口;DebugPanel 显示 「相机高度 1.161 m / 5.80 身高」。
-
根因:
world/main.gd的_create_player()里写player.global_position = ...,而该节点 此时还没入树(MultiplayerSpawner 之后才 add_child)。Node3D.get_global_transform()在未入树时ERR_FAIL返回单位矩阵,set_global_transform()顺势把 Player 根节点的 basis 换成单位阵 → player.tscn 那层 0.096096 缩放被抹掉。 -
无头探针对照(复现两种写法,同一份 player.tscn):
写法 Player.global_scale 模型世界高 相机相对脚底 旧 global_position1.0 1.561 m 1.1610 m 新 position0.096096 0.150 m 0.1116 m 旧写法的 1.1610 m 与游戏内面板的 1.161 m 逐位吻合;控制台每个玩家还会刷一条
ERROR: Condition "!is_inside_tree()" is true.。 -
修复:
player.position = player_spawn_pos.position(Main 与 PlayerSpawnPos 同级、Main 无变换, 局部坐标即世界坐标)。--check-only通过。 -
离屏渲染三张对照图(woman 1.703 m 站位旁):
probe_fix_A.png(同框,旧写法巨鼠几乎挡住 woman)、probe_fix_B.png(woman 脚边,修复后 15 cm 小鼠)、probe_fix_C.png(修复后 第一人称,面板读数 0.112 m / 0.56 身高)。 -
附带确认:
InteractionRay世界长度在两种状态下都是 0.25 m(Camera3D全局缩放恒为 1.0), 所以修缩放不影响拾取距离。