What is XRBuildKit?
XRBuildKit is a Unity Editor extension designed to streamline the complex process of building XR (Extended Reality) applications across multiple devices and platforms. Supporting devices like Meta Quest, XREAL, VisionOS, and PC VR often leads to configuration headaches, plugin conflicts, and platform-specific build errors. XRBuildKit solves these problems by automating preset management, XR loader automation, and Android plugin handling, while providing user-friendly build pipelines.
Why Use XRBuildKit?
Building XR apps for multiple hardware platforms is not just about changing the Unity build target. Each device may require:
π Unique Project Settings β Player settings, scripting backend, graphics APIs, etc.
π§© XR Loader Configurations β OpenXR, Oculus, XREAL, VisionOS loaders and options.
βοΈ Platform-Specific Features β Hand tracking, passthrough, or custom capabilities.
π± Android-Specific Files β
AndroidManifest.xml
, Gradle templates, and.aar
/.so
plugins.π¬ Scene & Build Options β Different scene lists or dev/production build flags.
Manually managing all these combinations is slow and error-prone. Developers frequently encounter:
π₯ Plugin conflicts (e.g., XREAL vs. Oculus/Quest).
β οΈ Incompatible project settings between platforms.
π Risk of losing/breaking project configs when switching devices.
π Repetitive, manual setup before each build.
XRBuildKit introduces a unified system to capture, store, switch, and apply all project, XR, and platform settings as device presets. This dramatically reduces human error and development time.
How Does XRBuildKit Work?
XRBuildKit is implemented as custom Unity Editor windows and utility scripts. Its functionality revolves around:
1. Preset Management
Store complete project, XR, and Android settings as presets.
Instantly switch Unity to a device/platform preset.
Import, overwrite, or delete presets from the XR Device Presets window (
XRDeviceSettingsWindow
).
2. Automated Build Pipelines
XRBuilderWindow
: Build apps for configured devices with a step-by-step UI.Automates scene selection, build folder setup, and platform-specific configuration.
Runs pre-build logic (plugin enabling/disabling, manifest updates).
Outputs builds into structured folders (
Builds/App/Offline/<DeviceName>
).
3. Safe, Reproducible Switching
All changes are file-based and reversible.
Ensures no stale or conflicting settings remain when switching presets.
Restores XR loaders, Android files, and ProjectSettings consistently.
4. Plugin & Loader Automation
PluginConfigurator
: Enables/disables Android.meta
plugin files (Quest vs. XREAL).Automatically toggles XR loaders per preset.
Supports disabling all XR loaders for headless/server builds.
High-Level SDK Structure
Editor Windows
XRBuilderWindow
: Offline (single-device) builds.XRDeviceSettingsWindow
: Device preset creation and management.XumLobbyBuilderWindow
: Optional networked builds (XumLobby integration).
Core Build Logic
OfflineBuildOptions
,NetworkBuildOptions
,BaseBuildOptions
.
Utility Classes
BuildUtility
: File handling, path management, build option helpers.PluginConfigurator
: Plugin and XR loader automation.XRSettingsUtility
: Save, load, delete project/XR/Android settings.PrefsUtility
: Persist window/editor preferences.
Samples & Templates
Demo device presets can be imported via
XRDeviceSettingsWindow
.
Key Benefits
β‘ Rapid context switching between device targets.
π― One-click builds for multiple XR platforms.
π‘ Eliminates most manual editing of Unity project settings.
β Reduces device-specific errors and plugin conflicts.
π§ Extensible for new devices and SDKs.
π XRBuildKit is built for XR developers who want to ship across multiple devices faster, safer, and with less manual work.
Last updated