From ae92f753455bf8c641d342a492a3b06428e71ad2 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Mon, 13 Apr 2026 18:39:09 +0900 Subject: [PATCH] fix --- packages/frontend/src/utility/room/engine.ts | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/frontend/src/utility/room/engine.ts b/packages/frontend/src/utility/room/engine.ts index f95ce2f0db..5276db8bcf 100644 --- a/packages/frontend/src/utility/room/engine.ts +++ b/packages/frontend/src/utility/room/engine.ts @@ -1376,9 +1376,7 @@ export class RoomEngine { }, onDone: () => { // todo: sticky状態などを引数でもらうようにしたい this.ui.isGrabbing = false; - const pos = selectedObject.position.clone(); - const rotation = selectedObject.rotation.clone(); - this.putParticleSystem.emitter = pos; + this.putParticleSystem.emitter = selectedObject.position.clone(); this.putParticleSystem.start(); sound.playUrl('/client-assets/room/sfx/put.mp3', { @@ -1414,15 +1412,23 @@ export class RoomEngine { for (const soid of stickyObjectIds) { const soMesh = this.objectEntities.get(soid)!.rootMesh; soMesh.setParent(null); + + const pos = soMesh.position.clone(); + const rotation = soMesh.rotation.clone(); + this.roomState.installedObjects.find(o => o.id === soid)!.position = [pos.x, pos.y, pos.z]; + this.roomState.installedObjects.find(o => o.id === soid)!.rotation = [rotation.x, rotation.y, rotation.z]; + removeStickyParentRecursively(soMesh); } }; removeStickyParentRecursively(selectedObject); - }); - this.roomState.installedObjects.find(o => o.id === selectedObject.metadata.objectId)!.sticky = sticky; - this.roomState.installedObjects.find(o => o.id === selectedObject.metadata.objectId)!.position = [pos.x, pos.y, pos.z]; - this.roomState.installedObjects.find(o => o.id === selectedObject.metadata.objectId)!.rotation = [rotation.x, rotation.y, rotation.z]; + const pos = selectedObject.position.clone(); + const rotation = selectedObject.rotation.clone(); + this.roomState.installedObjects.find(o => o.id === selectedObject.metadata.objectId)!.sticky = sticky; + this.roomState.installedObjects.find(o => o.id === selectedObject.metadata.objectId)!.position = [pos.x, pos.y, pos.z]; + this.roomState.installedObjects.find(o => o.id === selectedObject.metadata.objectId)!.rotation = [rotation.x, rotation.y, rotation.z]; + }); }, };