The WebXR Assets package uses the WebXR browser APIs, a standards-based implementation that removes the need for any platform-specific SDKs and handles responsiveness for a variety of XR configurations.
See browser and headset compatibility.
Unity is a game development platform that has been a very popular choice amongst AR/VR and indie game developers. There is a huge community out there to support creators, in particular a massive collection of assets in the Asset Store, which reduces the time and skills needed to build content. Unity has a relatively easy-to-use environment and cross-platform integration (including WebGL!) which makes targeting multiple platforms using a single project codebase easy.
Unity's Personal Edition is completely free to use for beginners, students and hobbyists. It's a great place to start and only has a few limitations. The Unity splash screen is required to be shown, and you cannot use the realtime developer analytics nor Unity Cloud Build services.
If you're a web developer, there are several popular JavaScript tools and frameworks you can use to create VR experiences for the Web:
The package works by using a custom WebGL template and Unity's message passing to send the necessary headset and controller values from the WebXR API into Unity, the values are then applied to cameras and controllers before being then rendered. The rendered frames are then submitted to the headset using WebXR API.
The web makes it easy to deliver content to users. Just navigate or link to a experience. It works just like any other web content and can be used without requiring downloads, installs or approvals. Meet your users where they are.
The WebXR Assets package targets desktop VR browsers and dedicated VR headsets like Oculus Quest. Mobile VR browser support is limited and generally not recommended at this time due to the performance and memory limitations of the Unity WebGL Player on mobile browsers.
Safari on iOS fails to load. We are investigating ways to make the exporter more usable on mobile. Stay tuned!
Please see compatibility details for more information.
The components are definitely a work in progress and are in a experimental stage of development, but we're committed to making it possible to deploy real applications with it.
You can increase the memory that is available to your application from the player setting in Unity from Edit > Project Settings > Player setting > WebGL Player Settings
.
You can work within the Unity editor by enabling VR support in Unity before publishing to WebXR.