WebXR is an open standard which allows VR apps to run directly from web browsers. While the tools for building WebXR apps are designed to be familiar to web developers, many VR developers use game engine tools like Unity to build their apps. With the Unity WebXR Exporter, developers now have the option of targeting browsers as their publishing platform, making their app easily accessible on the web.
WebXR is pretty magical. It makes it possible to create headset-agnostic VR experiences that can be accessed as easily as clicking a link. Take Moon Rider, for instance, a web-based VR rhythm game. Or how about Mozilla Hubs, a social VR chatroom that allows people with and without headsets to chat, draw, and share.
As neat as WebXR is, the tools to build this kind of content are still evolving. While a frameworks A-frame is a great starting point, it appeals more to web developers (being based on HTML) than game developers (who are used to working in game engines).
Unity is one of the most popular game engines for building VR content, including some of the biggest VR games out there like Beat Saber.
Luckily, the Mozilla’s free Unity WebXR Exporter makes it easy for game developers already using the engine to build WebXR apps. The tool has actually been around for some time, but hadn’t been updated since 2018 as the earlier ‘WebVR’ standard evolved into the newer ‘WebXR’ standard. Now Mozilla has released a revamped version of the tool that’s ripe and ready for WebXR.
Mozilla detailed the updated Unity WebXR Exporter on its blog, including pointing to the open-source of the tool and updated documentation on GitHub and a published demo scene.
The company says that the Unity WebXR Exporter supports Unity 2018.4 (LTS) and all versions of Unity 2019. Support for Unity 2020 is “planned once the new Unity APIs settle down.”
Because WebXR apps can be visited from virtually any device, Mozilla recommends developers build WebXR apps in Unity using the Universal Render Pipeline (previously known as the Lightweight Render Pipeline) to maintain high performance.