소스 검색

UI Button changes

Raanan Weber 5 년 전
부모
커밋
ffa86bea14
3개의 변경된 파일35개의 추가작업 그리고 8개의 파일을 삭제
  1. 29 6
      src/Cameras/XR/webXREnterExitUI.ts
  2. 4 1
      src/Cameras/XR/webXRExperienceHelper.ts
  3. 2 1
      src/Cameras/XR/webXRSessionManager.ts

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 29 - 6
src/Cameras/XR/webXREnterExitUI.ts


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

@@ -93,7 +93,7 @@ export class WebXRExperienceHelper implements IDisposable {
      * @param renderTarget the output canvas that will be used to enter XR mode
      * @returns promise that resolves after xr mode has entered
      */
-    public enterXRAsync(sessionMode: XRSessionMode, referenceSpaceType: XRReferenceSpaceType, renderTarget: WebXRRenderTarget) {
+    public enterXRAsync(sessionMode: XRSessionMode, referenceSpaceType: XRReferenceSpaceType, renderTarget: WebXRRenderTarget): Promise<WebXRSessionManager> {
         if (!this._supported) {
             throw "XR session not supported by this browser";
         }
@@ -139,9 +139,12 @@ export class WebXRExperienceHelper implements IDisposable {
             this.sessionManager.onXRFrameObservable.addOnce(() => {
                 this._setState(WebXRState.IN_XR);
             });
+
+            return this.sessionManager;
         }).catch((e: any) => {
             console.log(e);
             console.log(e.message);
+            throw(e);
         });
     }
 

+ 2 - 1
src/Cameras/XR/webXRSessionManager.ts

@@ -87,7 +87,7 @@ export class WebXRSessionManager implements IDisposable {
      * @param optionalFeatures defines optional values to pass to the session builder
      * @returns a promise which will resolve once the session has been initialized
      */
-    public initializeSessionAsync(xrSessionMode: XRSessionMode, optionalFeatures: any = {}) {
+    public initializeSessionAsync(xrSessionMode: XRSessionMode, optionalFeatures: any = {}): Promise<XRSession> {
         return this._xrNavigator.xr.requestSession(xrSessionMode, optionalFeatures).then((session: XRSession) => {
             this.session = session;
             this._sessionEnded = false;
@@ -106,6 +106,7 @@ export class WebXRSessionManager implements IDisposable {
                 this.onXRSessionEnded.notifyObservers(null);
                 this.scene.getEngine()._renderLoop();
             }, { once: true });
+            return this.session;
         });
     }