diff --git a/src/lib/GameEngine.js b/src/lib/GameEngine.js index 06cb2fe..43da0eb 100644 --- a/src/lib/GameEngine.js +++ b/src/lib/GameEngine.js @@ -214,18 +214,22 @@ class GameEngine extends EventManager{ if (opts.ar) { renderer.xr.enabled = true; - document.body.appendChild(ARButton.createButton(renderer, {})); + this.arBtn = ARButton.createButton(renderer, {}); + this.arBtn.classList.add('engine-ar-btn'); + document.body.appendChild(this.arBtn); } if (opts.xr) { renderer.xr.enabled = true; - document.body.appendChild(XRButton.createButton(renderer, opts.depthSense ? { + this.xrBtn = XRButton.createButton(renderer, opts.depthSense ? { 'requiredFeatures': ['depth-sensing'], 'depthSensing': { usagePreference: ["gpu-optimized"], dataFormatPreference: ["unsigned-short"], matchDepthView: false } - } : {})); + } : {}) + this.xrBtn.classList.add('engine-xr-btn'); + document.body.appendChild(this.xrBtn); this.initXrControllers(); } @@ -611,6 +615,13 @@ class GameEngine extends EventManager{ }) } + destroy(){ + this.renderer.dispose(); + this.arBtn?.remove(); + this.xrBtn?.remove(); + this.stats?.dom?.remove(); + } + static textureLoader = new THREE.TextureLoader(); static audioLoader = new THREE.AudioLoader();