Unreal Engine VR Basics
Updated: Apr 17, 2026
This guide covers the basics of VR development in Unreal Engine for Meta Quest.
Unreal Engine provides built-in HMD support through the Player Start actor. When a Meta Quest headset is detected, the engine automatically provides orientation tracking, positional tracking, and stereoscopic rendering for any project. For standalone Meta Quest development, set your build target to Android and install the Meta XR Plugin. For the full setup process, see
Creating and configuring a new project. For PC-VR development, connect a Meta Quest headset to your PC using
Meta Horizon Link.
To preview a level in VR while editing, select the dropdown arrow near the Play button and select VR Preview.
Using the default camera set to VR Preview is a good way to get a quick sense of VR development with minimal overhead, but for actual development, you should add a camera to a Pawn. By default, the camera is locked to the HMD. You can verify this by selecting the camera in the Viewport and looking at the Lock to HMD checkbox in the Details tab.

Placing a camera in the scene allows you to control the orientation of the camera view when the game loads, so that you can control the exact perspective that will be visible to the user. This is not possible with the Player Start described above.
Note: Game-related actions should be performed on the Pawn to which the camera was added, not directly on the camera itself.
An additional benefit to using a Camera attached to a Pawn is that you can attach meshes and they will update their position following the HMD view with very little latency. This is generally the best way to add head-locked elements such as cockpit details. While you should generally avoid head-locked UI elements, head-locked visuals can be effective when used sparingly.
The HMD pose is reported relative to a tracking origin. You can set the tracking origin using the Set Tracking Origin Blueprint node (from UHeadMountedDisplayFunctionLibrary) or IXRTrackingSystem::SetTrackingOrigin() in C++. The following values are supported on Meta Quest:
| Value | Description |
|---|
Local Floor | Floor-relative tracking for standing or seated experiences. The origin is at floor level, set during the headset’s guardian or boundary setup, typically near the center of the playable area. The floor-level origin’s position has Z = 0 at the physical floor. Use this mode when the user remains roughly stationary. |
Eye Level (View) | Eye-relative tracking. The origin is the initial pose of the HMD when the camera activates, centered at the initial head position. |
Stage | Room-scale tracking for experiences where the user walks around a defined play area. The origin is at floor level, and the play area bounds from the guardian or boundary setup are available to the application. Use this mode when your experience needs to query the play area boundary. |
When you recenter the tracking origin, the behavior differs depending on the tracking origin mode.
For eye level tracking, recentering moves the origin’s position (X, Y, and Z) and the yaw (rotation around the Z axis) to match the current head pose. Pitch and roll are not modified because that would make the application’s virtual horizon mismatch the real-world horizon, disorienting the user.
For floor level tracking, recentering moves the origin’s X and Y position, but leaves the Z position (height) alone to keep it consistent with the real-world floor. Rotation is handled the same way as eye level.
For more information, see:
Unreal Engine provides a Virtual Reality project template which you can select when creating a new project.
The VR Template (VRTemplate) contains a single map (VRTemplateMap), accessible through the Content Browser in All > Content > VRTemplate > Maps. The template demonstrates teleportation locomotion and object interaction using Touch controllers with the Enhanced Input system. It also includes example UI widgets for in-world menus.
Design guidelines are Meta’s human interface standards and design frameworks that help you create safe, user-oriented, and retainable immersive and passthrough user experiences.
Intro to immersive design