27 lines
1.7 KiB
Markdown
27 lines
1.7 KiB
Markdown
# 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_position` | 1.0 | 1.561 m | **1.1610 m** |
|
||
| 新 `position` | 0.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),
|
||
所以修缩放不影响拾取距离。
|