skills/hz-unity-meta-core-sdk/SKILL.md
Meta XR Core SDK (com.meta.xr.sdk.core) for Unity XR development. Use when setting up VR/MR projects, configuring OVRManager, adding OVRCameraRig, enabling passthrough, hand tracking, spatial anchors, boundaryless mode, controller input, Scene API, or any Meta Quest XR feature. Covers OVRProjectSetup, AndroidManifest generation, and project configuration for Meta Quest headsets.
npx skillsauth add meta-quest/agentic-tools hz-unity-meta-core-sdkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The Meta XR Core SDK is the foundational Unity package for developing VR and MR applications targeting Meta Quest headsets. It provides the core XR rig, device management, input handling, and access to platform features like passthrough, hand tracking, spatial anchors, and scene understanding.
Package: com.meta.xr.sdk.core
The package com.meta.xr.sdk.core may be located in different places depending on the project setup:
Library/PackageCache/com.meta.xr.sdk.core@<hash>/ (cached from registry)Packages/com.meta.xr.sdk.core/ (local package reference)Before searching for SDK source, first locate the package root by searching for a known file by filename pattern:
**/com.meta.xr.sdk.core*/Scripts/OVRManager.cs
Then use the resolved parent path for all subsequent search operations.
Any time you modify OVRProjectConfig or OVRManager feature settings (hand tracking, passthrough, boundaryless, target devices, etc.), you MUST call GenerateOrUpdateAndroidManifest() and verify the result. See references/android-manifest.md for the full workflow.
| Component | Purpose | |---|---| | OVRCameraRig | Primary XR rig prefab replacing Unity's Main Camera | | OVRManager | Singleton managing device state, features, and configuration | | OVRInput | Unified API for controller input and tracking | | OVROverlay | Compositor layers for sharper text, UI, and video | | OVRPassthroughLayer | Enables passthrough visualization | | OVRSpatialAnchor | World-locked spatial anchors | | OVRBoundary | Guardian boundary system access | | OVRProjectSetup | Project Setup Tool for configuration tasks |
The OVRCameraRig prefab is the primary GameObject to add to create a VR/MR scene. It replaces Unity's conventional Main Camera and provides:
The OVRCameraRig hierarchy includes eye anchors, hand/controller anchors, and multimodal anchors. To see the current structure, inspect the OVRCameraRig prefab or instantiate it in a scene and examine the TrackingSpace children.
When working with a scene that needs XR support:
OVRManager (OVRManager.cs) is the main interface to VR hardware. It is a singleton attached to the OVRCameraRig prefab that exposes the Meta XR SDK to Unity. It controls:
To understand what features are available and how they're configured, analyze the OVRManager component on the OVRCameraRig in the scene. The OVRManager Inspector exposes all configurable XR features grouped into sections.
For the full settings reference (tracking origin, passthrough, boundary, hand tracking on OVRProjectConfig, etc.), see references/ovr-manager.md.
The Unity Project Setup Tool (UPST) (OVRProjectSetup) is a Unity Editor extension that validates project configuration for Meta Quest. It maintains a registry of Configuration Tasks — each task checks a specific setting and reports whether it is satisfied or outstanding.
Primary use: list all outstanding issues for the current platform, then fix them.
IsDone is false. Each issue has a level (Required, Recommended, Optional), a group (Compatibility, Rendering, Features, etc.), and a fix type (Auto-fix or Manual).FixAllAsync(BuildTargetGroup) to auto-fix all fixable issues, or invoke individual FixAction delegates directly.UPST can be driven programmatically via Unity MCP using reflection (see references/project-setup-tool.md for the full API, task registry access, property reading, and fix invocation patterns).
Access via UI: Meta > Tools > Project Setup Tool.
NEVER directly edit AndroidManifest.xml for features managed by OVRProjectConfig. See references/android-manifest.md for the full manifest update workflow and rules.
Passthrough provides real-time visualization of the physical world inside the headset, enabling mixed reality experiences. See references/passthrough.md for setup steps and configuration.
Hand tracking enables natural hand interaction without controllers. See references/hand-tracking.md for setup and configuration.
Spatial anchors anchor virtual content to real-world locations that persist across sessions.
For spatial anchors details, see references/spatial-anchors.md.
Scene provides access to the user's physical environment model (walls, floor, furniture) for scene-aware MR experiences.
For Scene API details, see references/scene-api.md.
Boundaryless mode disables the Guardian boundary for MR experiences where the physical world is visible.
For boundaryless setup, see references/boundaryless.md.
OVROverlay renders textures directly via the VR compositor, bypassing eye buffer resampling for sharper text, UI, and video. Supports up to 15 overlay layers per scene with quad, cylinder, cubemap, equirect, and fisheye shapes.
For compositor layer details, see references/ovr-overlay.md.
OVRInput provides unified access to controller buttons, triggers, thumbsticks, and tracking.
For controller input details, see references/controller-input.md.
For the full project setup workflow (install SDK, set build platform, configure XR provider, add OVRCameraRig, configure OVRManager, generate AndroidManifest), see references/project-setup-workflow.md.
All documentation references point to the official Meta developer docs at developers.meta.com:
SDK classes (e.g. OVRManifestPreprocessor, OVRProjectSetup) live in assemblies that are not directly referenceable from Unity MCP compiled scripts. You must use runtime reflection to call them. The Unity MCP compilation environment also has specific quirks that will cause silent crashes if not followed.
using System.Reflection; — it causes UNEXPECTED_ERROR crashes in the MCP framework. Fully qualify reflection types instead (e.g. System.Reflection.TargetInvocationException).BindingFlags overloads of GetMethod / GetProperty — they also trigger MCP crashes. Use the parameterless GetMethod("MethodName") overload (finds public methods by default).silentMode: true (or equivalent) for any method that may call EditorUtility.DisplayDialog — dialogs block indefinitely in MCP context.System.Reflection.TargetInvocationException and log InnerException — reflection wraps the real error.using UnityEngine;
using UnityEditor;
internal class CommandScript : IRunCommand
{
public void Execute(ExecutionResult result)
{
// 1. Find the type by name across all loaded assemblies
System.Type t = null;
foreach (var asm in System.AppDomain.CurrentDomain.GetAssemblies())
{
try { t = asm.GetType("CLASS_NAME_HERE"); } catch { }
if (t != null) break;
}
if (t == null) { result.LogError("Type CLASS_NAME_HERE not found."); return; }
// 2. Get the method (parameterless overload only — no BindingFlags)
var m = t.GetMethod("METHOD_NAME_HERE");
if (m == null) { result.LogError("Method METHOD_NAME_HERE not found."); return; }
// 3. Invoke with error handling
try
{
m.Invoke(null, new object[] { /* args */ });
result.Log("Done.");
}
catch (System.Reflection.TargetInvocationException tie)
{
result.LogError("Error: " + tie.InnerException);
}
}
}
Replace CLASS_NAME_HERE, METHOD_NAME_HERE, and the args array as needed. For instance methods, pass the target object instead of null.
If the metavr MCP server is available, use the mcp__metavr__meta_docs_search and mcp__metavr__meta_docs_get_page tools to verify current API details, as Meta SDK documentation updates frequently. Use mcp__metavr__search_api_reference with engine='unity' to look up exact method signatures for OVRManager, OVRCameraRig, OVRInput, and other classes.
tools
Provides the complete metavr (Meta VR CLI) reference for Meta Quest and Horizon OS development — installation, device setup, command discovery, MCP server mode, documentation search, app deployment, device testing setup, audio control, screenshots, and performance analysis. Use when the user needs to install metavr, asks what commands are available, needs CLI syntax help, or wants to know what metavr can do.
development
Guides integration of the Horizon Platform SDK for Meta Quest and Horizon OS Unity/C# apps — achievements, IAP, users, leaderboards, challenges, presence, notifications, abuse reporting, entitlements, asset files, application lifecycle, consent, device integrity, language packs, user age categories, and rate and review. Covers setup, initialization, API usage, data types, error handling, and best practices for all 18 public platform SDK packages.
development
Build and sideload Android apps for Meta Portal devices (Portal, Portal+, Portal Mini, Portal Go, Portal TV) using metavr. Use when targeting Portal hardware — covers ADB enablement, the no-GMS constraint, manifest/launcher intent-filter requirements, icon density quirks (PNG-only, mipmap-xxxhdpi), the Smart Camera SDK, and the gradle + `metavr adb` build/deploy/debug loop. Auto-load when the user mentions "Portal" device, targets `minSdkVersion` 28-29 for a tabletop/TV form factor, or works with the `com.facebook.portal` package.
development
Sets up the Meta XR Simulator for testing Meta Quest and Horizon OS apps without a physical device. Use when configuring device-free testing for Unity or Unreal projects.