diff --git a/packages/core/src/core/Worlds/src/simple-world.ts b/packages/core/src/core/Worlds/src/simple-world.ts index e37f425d..2b89c933 100644 --- a/packages/core/src/core/Worlds/src/simple-world.ts +++ b/packages/core/src/core/Worlds/src/simple-world.ts @@ -73,6 +73,7 @@ export class SimpleWorld< } else { container.removeEventListener("pointerdown", this.onPointerDown); } + this._dynamicAnchor = value; } get dynamicAnchor() { @@ -234,6 +235,13 @@ export class SimpleWorld< this.enabled = false; this.isDisposing = true; + // Remove the dynamic anchoring listener before the renderer is disposed + const container = this.renderer?.three.domElement.parentElement; + if (container) { + container.removeEventListener("pointerdown", this.onPointerDown); + } + this._dynamicAnchor = false; + this.scene.onWorldChanged.trigger({ world: this, action: "removed" }); this.camera.onWorldChanged.trigger({ world: this, action: "removed" }); if (this.renderer) {