Define XrService interface.

interface IXrService {
    controllers: {
        left?: IXrController;
        right?: IXrController;
    };
    isVrReady: boolean;
    end(): void;
    fire<T>(event: T, ...args?: any[]): EventHandler;
    off<T>(event: T, listener: IXrServiceEvents[T]): EventHandler;
    on<T>(event: T, listener: IXrServiceEvents[T]): EventHandle;
    start(type: SessionTypes): void;
}

Hierarchy

  • EventHandlerMethods
    • IXrService

Implemented by

Properties

controllers: {
    left?: IXrController;
    right?: IXrController;
}

Gets XrController information.

isVrReady: boolean

Whether VIVERSE VR system is ready.

Methods

  • Send a specific event.

    Type Parameters

    Parameters

    • event: T

      Event name

    • Optional Rest...args: any[]

      Event parameters

    Returns EventHandler

  • Start VIVERSE XR session. NOTE: WebXR requires a user action (key press, click, or touch) to enter and cannot start automatically.

    Parameters

    Returns void

    // The VIVERSE VR system might not be ready when the script is loaded.
    button.active = false;
    button.on('click', () => {
    xrService.start(XrTypes.SessionTypes.Vr);
    });
    if(xrService.isVrReady){
    button.active = true;
    } else {
    xrService.on('vr:ready', () => {
    button.active = true;
    xrService.off('vr:ready');
    });
    }