fix(g20): метки привязываются к npc.data.rootMesh (модель)

Метки рисовались в куче в (0,0,0) — anchorMesh был сам npc (объект,
не mesh). LabelManager делал plane.parent = anchorMesh, но позиция
не наследовалась.

Фикс: _resolveTweenTarget для 'npc' возвращает data.mesh =
npc.data.rootMesh (реальная модель NPC).
This commit is contained in:
min 2026-06-09 21:01:58 +03:00
parent 56c35273ef
commit 4644a332e4

View File

@ -1569,15 +1569,17 @@ export class GameRuntime {
if (Number.isFinite(n)) npc = nm.npcs.get(n); if (Number.isFinite(n)) npc = nm.npcs.get(n);
} }
if (npc) { if (npc) {
// Возвращаем npc в формате 'tween-target' с mesh-ссылкой. // У NPC реальный mesh лежит в npc.data.rootMesh (модель).
const mesh = npc.data?.rootMesh || npc.data?.rootNode
|| npc.rootMesh || npc.rootNode || null;
return { return {
kind: 'npc', kind: 'npc',
data: { data: {
mesh: npc.rootMesh || npc.mesh || npc.rootNode || npc, mesh,
rootMesh: npc.rootMesh || npc.rootNode, rootMesh: mesh,
x: npc.x ?? npc.position?.x ?? 0, x: npc.x ?? 0,
y: npc.y ?? npc.position?.y ?? 0, y: npc.y ?? 0,
z: npc.z ?? npc.position?.z ?? 0, z: npc.z ?? 0,
}, },
}; };
} }