session-subsystem.md 1.37 KB
uid: arsubsystems-session-subsystem

XR session subsystem

A "session" refers to an instance of AR. While the other AR subsystems provide specific pieces of functionality, like plane detection, the session controls the lifecycle of all AR-related subsystems. If you Stop (or fail to Create) an XRSessionSubsystem, the other AR subsystems might not work.

Start starts the session. Stop pauses it.

Determining availability

Some platforms have AR capabilities built into the device's operating system. On others, AR software might be able to be installed on-demand. The question "is AR available on this device?" might require checking a remote server for software availability. Therefore, XRSessionSubsystem.GetAvailabilityAsync should be called to determine whether AR is presently available to the app. This method returns a Promise<SessionAvailability>which can be used in a coroutine.

Once availability is determined, the device can be:

  • unsupported
  • supported but requiring an update or install
  • supported and ready

Installing additional AR software

If SessionAvailability is SessionAvailability.Supported but not SessionAvailability.Installed, you should call InstallAsync to install the AR software. This returns another type of Promise: Promise<SessionInstallationStatus>. If the installation is successful, it's safe to Start the subsystem.