From b7b3c07a966809ee514d592deee4d1dc541729a1 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Mon, 20 Apr 2026 20:50:52 +0900 Subject: [PATCH] Update engine.ts --- packages/frontend/src/world/room/engine.ts | 28 +++++++++++++--------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/packages/frontend/src/world/room/engine.ts b/packages/frontend/src/world/room/engine.ts index 489fef0450..86f2460521 100644 --- a/packages/frontend/src/world/room/engine.ts +++ b/packages/frontend/src/world/room/engine.ts @@ -58,6 +58,10 @@ function mergeMeshes(meshes: BABYLON.Mesh[], root: BABYLON.Mesh, hasTexture: boo } } + if (toMerge.length <= 1) { + return null; + } + for (const mesh of toMerge) { if (hasTexture) { if (mesh.getVerticesData(BABYLON.VertexBuffer.UVKind) == null) { @@ -802,19 +806,21 @@ export class RoomEngine extends EventEmitter { if (def.canPreMeshesMerging) { const merged = mergeMeshes(loaderResult.meshes, subRoot, def.hasTexture); - merged.setParent(subRoot); - merged.name = 'preMerged'; - merged.material.freeze(); - if (merged.material instanceof BABYLON.MultiMaterial) { - for (const subMat of merged.material.subMaterials) { - subMat.freeze(); + if (merged != null) { + merged.setParent(subRoot); + merged.name = 'preMerged'; + merged.material.freeze(); + if (merged.material instanceof BABYLON.MultiMaterial) { + for (const subMat of merged.material.subMaterials) { + subMat.freeze(); + } } - } - // TODO: 再帰的にする - for (const m of loaderResult.transformNodes) { - if (m.getChildren().length === 0) { - m.dispose(); + // TODO: 再帰的にする + for (const m of loaderResult.transformNodes) { + if (m.getChildren().length === 0) { + m.dispose(); + } } } }