Skip to content

Troubleshooting PC VR Streaming in Unity: Fixing OpenXR & Meta Quest Link Initialisation Failures

If you are developing a PC VR application in Unity for the Meta Quest (via Link or Air Link) and hit Play only to find the scene rendering on your flat monitor while your headset remains stuck in the Link home environment, you are not alone.

This issue is one of the most common friction points in Unity VR development. It usually stems from a breakdown in the OpenXR handshake between Unity’s editor runtime and the Meta Horizon Link desktop service.

Here is a comprehensive, step-by-step guide to diagnosing and fixing the issue so you can stream your Unity Editor scene directly to your Quest lenses.

1. Verify USB Connection & Enable Link inside the Headset

A physical USB-C cable connection is not enough on its own—you must explicitly allow USB data access and launch Meta Horizon Link inside the Quest interface.

  1. Plug in your Quest: Connect a high-speed USB 3.0 cable from your headset to a USB 3.0 port on your PC.
  2. Handle the Pop-up Prompts: Put on your headset. When prompted with “Allow access to data”, select Deny or Allow (Deny is recommended for development to avoid triggering file explorer prompts on your PC).
  3. Enable Link Connection: Select Enable Meta Horizon Link when prompted.
  4. Manual Launch (if no prompt appears):
    • Press the Meta button on your right controller to open the universal menu.
    • Navigate to Quick Settings (click the clock/battery icon on the bottom left).
    • Select Quest Link (or Rift), select your connected PC, and click Launch.
    • Confirm you are standing inside the dark grey Meta Quest Link Dash room before launching Unity.
See also  Unity & Admob bugs fixed

2. Verify the Active OpenXR Runtime in Desktop Meta Link

Unity routes VR frames to whatever software claims the System Default OpenXR Runtime on Windows. If SteamVR or another runtime previously hooked into your system, Unity will try to send frames there instead of your Quest.

  1. Open the Meta Horizon Link application on your Windows PC.
  2. Go to Settings > General on the left menu.
  3. Scroll down to the OpenXR Runtime section.
  4. If it is not active, click Set Meta Horizon Link as active.

Note: If this button is missing or greyed out, make sure your Meta Quest app is updated to the latest version and that you are logged into your primary Meta account.

3. Handle the “Unknown Source” Security Warning

When you press Play in Unity, Meta Horizon Link may display a pop-up warning inside your headset stating:

“It appears you’re opening an app from an unknown source. Meta Horizon Link has not reviewed this app for security, comfort, content or health and safety.”

Why This Happens

Because you are running an uncompiled build or live editor preview directly from Unity, Meta recognizes it as an untrusted external executable that hasn’t gone through App Lab or Store certification.

How to Resolve It

  1. Enable Unknown Sources in the PC App:
    • Open the Meta Horizon Link application on your Windows desktop.
    • Go to Settings > General.
  1. Toggle Unknown Sources to On (Allowed).
  2. Bypass inside the Headset:
    • Look at the prompt inside your lenses and select Open Anyway or Allow.
    • If available, check Don’t Show Again for editor previews.
See also  Fixed - Unity build failure: Cannot access output property 'soFolder' of task ':unityLibrary:buildCMakeRelWithDebInfo[armeabi-v7a]'.

4. Check Unity Project Validation Warnings

Unity’s OpenXR package features built-in diagnostics that silent-fail if required feature profiles or rendering settings are missing.

  1. Open Unity and go to Edit > Project Settings > XR Plug-in Management.
  2. Expand the sub-item named Project Validation on the left sidebar.
  3. Select the PC/Mac/Linux Standalone tab (the monitor icon).
  4. Review the issues list. If any red errors or yellow warnings appear (such as missing Interaction Profiles or invalid Render Modes):
    • Click Fix All on the top right.
    • Restart the Unity Editor if prompted.

5. Configure OpenXR Settings & Controller Profiles

OpenXR requires explicit input profiles to acknowledge your headset and controllers during runtime initialization.

  1. Go to Edit > Project Settings > XR Plug-in Management > OpenXR.
  2. Make sure you are on the PC/Mac/Linux Standalone tab (monitor icon).
  3. Under Enabled Interaction Profiles, ensure Oculus Touch Controller Profile (or Meta Quest Touch Pro Controller Profile) is present in the list.
    • If the list is empty, click the + icon and add it.
  4. Check that Render Mode is set to Single Pass Instanced for optimal VR performance.

6. Fix Legacy vs. New Input System Conflicts

If your Unity console throws an InvalidOperationException mentioning UnityEngine.Input, your project is configured for the New Input System, but scripts in your scene are using legacy input API methods (like Input.GetButtonDown).

Option A: Update Your Project Settings (Quick Fix)

  1. Navigate to Edit > Project Settings > Player.
  2. Expand Other Settings and scroll to Configuration.
  3. Locate Active Input Handling and change it from Input System Package (New) to Both.
  4. Click Apply to restart Unity.
See also  What are AdMob Campaigns for? How to use?

Option B: Refactor Code for New Input System (Recommended)

Add using UnityEngine.InputSystem; to your input scripts and use Keyboard.current.spaceKey.wasPressedThisFrame or Input Action references instead of legacy methods.

7. Correct the Link Launch Sequence

Order of operations matters when establishing a PC-to-VR runtime bridge. Following the wrong sequence can cause Unity to initialize VR before the headset’s runtime registers as active.

  1. Put on your Meta Quest headset and power it on.
  2. Connect your Link cable, accept the USB connection prompt, and trigger Quest Link.
  3. Confirm you are standing inside the Meta Horizon Link Dash room (the dark grey environment with the curved menu bar).
  4. Keep the headset awake. Place it on your forehead or make sure the proximity sensor between the lenses stays covered so it doesn’t enter sleep mode.
  5. On your PC monitor, click directly inside the Unity Game View tab to give it active window focus.
  6. Click Play in Unity.

Summary Checklist

ComponentRequired State
Headset USB ConnectionCable plugged in, USB data/Link connection enabled in VR
Meta Desktop AppSet as Active OpenXR Runtime & Unknown Sources enabled
Security PromptSelect “Open Anyway” inside headset
XR Plug-in ManagementOpenXR checked under Desktop Standalone tab
OpenXR ProfilesOculus Touch Controller Profile added
Input HandlingConfigured to Both or fully migrated to New Input System
Headset StateActive in Meta Link Dash before hitting Play in Unity

Discover more from Science Safari

Subscribe to get the latest posts sent to your email.

Leave a Reply

error: Content is protected !!