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:
parent
56c35273ef
commit
4644a332e4
@ -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,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user