fix(g7): спавненные unanchored примитивы регистрируются в физике
DynamicsManager.start() собирает unanchored объекты только при входе в Play. Куб созданный из скрипта в runtime не попадал в bodies → не падал, висел в воздухе. Фикс: после pm.addInstance с anchored=false вызываем dm.registerPrimitive(data) — кладёт тело в физический мир сразу после спавна.
This commit is contained in:
parent
c9acb4fb3b
commit
2af9b96088
@ -150,6 +150,16 @@ export function handleLuaCommand(_scriptId, cmd, payload, runtime) {
|
||||
canCollide: payload?.canCollide !== false,
|
||||
};
|
||||
pm.addInstance(payload?.type || 'cube', opts);
|
||||
// Если unanchored — регистрируем в физике на лету, иначе он не падает.
|
||||
if (opts.anchored === false) {
|
||||
try {
|
||||
const dm = runtime.scene3d?.dynamicsManager;
|
||||
const data = pm.instances?.get?.(opts.id);
|
||||
if (dm && data) dm.registerPrimitive(data);
|
||||
} catch (e) {
|
||||
console.warn('[sceneCreate] registerPrimitive failed', e);
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('[sceneCreate]', e);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user