Browse Source

dispose all resources

Raanan Weber 5 years ago
parent
commit
0ac685c4e3

+ 1 - 0
src/Cameras/XR/webXRExperienceHelper.ts

@@ -162,6 +162,7 @@ export class WebXRExperienceHelper implements IDisposable {
         this.onStateChangedObservable.clear();
         this.onInitialXRPoseSetObservable.clear();
         this.sessionManager.dispose();
+        this.scene.activeCamera = this._nonVRCamera;
     }
 
     private _nonXRToXRCamera() {

+ 4 - 1
src/Cameras/XR/webXRFeaturesManager.ts

@@ -270,7 +270,10 @@ export class WebXRFeaturesManager implements IDisposable {
      * dispose this features manager
      */
     dispose(): void {
-        this.getEnabledFeatures().forEach((feature) => this._features[feature].featureImplementation.dispose());
+        this.getEnabledFeatures().forEach((feature) => {
+            this.disableFeature(feature);
+            this._features[feature].featureImplementation.dispose();
+        });
     }
 
 }

+ 2 - 0
src/Cameras/XR/webXRInput.ts

@@ -121,5 +121,7 @@ export class WebXRInput implements IDisposable {
         this.xrSessionManager.onXRFrameObservable.remove(this._frameObserver);
         this.xrSessionManager.onXRSessionInit.remove(this._sessionInitObserver);
         this.xrSessionManager.onXRSessionEnded.remove(this._sessionEndedObserver);
+        this.onControllerAddedObservable.clear();
+        this.onControllerRemovedObservable.clear();
     }
 }