The XRAn umbrella term encompassing Virtual Reality (VR), Augmented Reality (AR) and Mixed Reality (MR) applications. Devices supporting these forms of interactive applications can be referred to as XR devices. More info
See in Glossary Origin serves as the center of tracking space in an XR sceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary.
An XR Origin configuration is a set of GameObjectsThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary and components that work together to transform data from the XR tracking subsystems into world space. For example, the TrackedPoseDriver component on the Main CameraA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
See in Glossary GameObject moves the Camera relative to the XR Origin using the tracking data for the user’s headset or handheld device. See XR Origin for more information about the XR Origin.
XR devices provide tracking data in real-world units relative to a point chosen by the XR system at initialization. Unity aligns the XR Origin GameObject in a scene with this initial point. The starting position of the XR Origin in the scene also determines the default starting position of the Camera.
GameObjects representing tracked entities, such as the user’s headset or hand-held device, are children of the XR Origin GameObject in the scene hierarchy. This means that changes in position and rotation based on tracking updates are relative to the XR Origin. As the user moves in the real world, these child GameObjects move relative to the XR Origin in the scene. The XR Origin doesn’t move on its own. However, you can move the XR Origin with a script to allow the user to teleport or move via controller input.
The Unity XR packages provide a number of XR Origin configurations tailored for different types of XR applications. You can use the GameObject > XR menu to add an XR Origin to the current Scene. The available options depend on which packages you have added to your project.
XR type | Rig | Menu option | Package | Notes |
---|---|---|---|---|
VRVirtual Reality More info See in Glossary, MRMixed Reality See in Glossary |
XR Rig | Convert Main Camera To XR Rig | XR Legacy Input Helpers (installed with the XR Plug-in Management package) | Replaces the standard Camera in a basic Unity Scene. The logic used to replace the main camera can fail in complex scenes. |
VR, MR | XR Origin | XR Origin | XR Core Utils (installed with the XR Interaction Toolkit package) | Does not include GameObjects for controllers. |
VR, MR | XR Origin (VR) | XR Origin (VR) | XR Interaction Toolkit | Includes controller GameObjects set up for action-based input. |
VR, MR | XR Origin (VR) | Device-based > XR Origin (VR) | XR Interaction Toolkit | Includes controller GameObjects set up for device-based input. |
ARAugmented Reality More info See in Glossary |
AR Session Origin | AR Session Origin | AR Foundation | Serves as the tracking origin for hand-held AR applications. |
Note: In the latest versions of the Unity XR packages, the XR Rig has been replaced with the XR Origin. The XROrigin
component also replaces the CameraOffset
component, providing a few additional settings. See XR Origin component for more information.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.