unity-xr
Automates development of immersive AR/VR experiences in Unity, supporting hand tracking, spatial audio, and cross-platform deployment.
Install
mkdir -p .claude/skills/unity-xr && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13892" && unzip -o skill.zip -d .claude/skills/unity-xr && rm skill.zipInstalls to .claude/skills/unity-xr
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Develops XR applications using Unity for AR and VR, focusing on immersive interactions and cross-platform compatibility.Key capabilities
- →Handle XR Interaction Toolkit for input systems
- →Support AR Foundation for unified AR development
- →Ensure cross-platform compatibility for XR applications
- →Manage immersive interactions like raycasting
- →Optimize XR applications for performance
How it works
This skill assists in developing XR applications using Unity's XR Interaction Toolkit and AR Foundation, managing input systems, and configuring cross-platform builds. It provides code snippets and best practices for immersive interactions and performance optimization.
Inputs & outputs
When to use unity-xr
- →Setting up hand tracking for VR
- →Implementing plane detection for AR
- →Optimizing 3D scenes for 90 FPS
- →Configuring cross-platform build settings
About this skill
Purpose
This skill automates and assists in developing XR applications with Unity, focusing on AR and VR features like hand tracking, spatial audio, and multi-platform builds for devices such as Oculus Quest or HoloLens. It leverages Unity's XR ecosystem to streamline immersive interaction code.
When to Use
Use this skill when creating interactive AR/VR experiences, such as virtual training simulations, 3D product visualizations, or multiplayer VR games. Apply it for cross-platform projects needing device-agnostic code, like adapting to Android ARCore and iOS ARKit, or when optimizing for performance on standalone VR headsets.
Key Capabilities
- Handles XR Interaction Toolkit for input systems: Use
XRBaseInteractableto define grabbable objects in VR scenes. - Supports AR Foundation for unified AR development: Enable plane detection with
ARPlaneManagerto track surfaces. - Ensures cross-platform compatibility: Configure build settings for multiple targets using Unity's Player Settings API, e.g., set
XRSettings.enabled = true;for specific devices. - Manages immersive interactions: Implement raycasting for VR pointers via
XRInteractorLineVisual, with collision checks in 2-3 lines of C# code. - Optimizes for performance: Use Unity's Profiler to monitor frame rates, integrating with XR plugins to cap at 90 FPS for VR.
Usage Patterns
To set up a basic XR project, first install Unity and the XR packages via the Package Manager. Import the XR Interaction Toolkit, then create a new scene and add an XR Rig prefab. For AR, initialize an AR Session in your script's Start() method. Always test on target hardware early. For VR interactions, attach scripts to GameObjects to handle events like OnSelectEntered(). Structure code modularly: separate input handling from logic. When building, use command-line builds for automation, e.g., run Unity -batchmode -projectPath /path/to/project -buildTarget Android -executeMethod BuildScript.PerformBuild.
Common Commands/API
- Unity CLI for building: Use
Unity -quit -batchmode -projectPath /path/to/project -buildWindows64Player /output/path.exeto compile a VR build; include-logFile build.logfor output. - XR Interaction API snippet:
using UnityEngine.XR.Interaction.Toolkit; public class GrabHandler : XRGrabInteractable { void OnSelectEntered(SelectEnterEventArgs args) { transform.position = args.interactor.transform.position; } } - AR Foundation API for session management:
using UnityEngine.XR.ARFoundation; public class ARManager : MonoBehaviour { private ARSession arSession; void Start() { arSession = FindObjectOfType<ARSession>(); arSession.enabled = true; } } - Configuration formats: Edit Unity's
ProjectSettings/ProjectSettings.assetto set XR plugins, e.g., addXR Plug-in Management: OculusunderXRSettings. For API keys (e.g., for AR services), use environment variables like$ARFOUNDATION_API_KEYin build scripts. - Common endpoints: When integrating with Unity services, reference REST endpoints like
https://services.unity.com/api/v1/projectsfor cloud builds, authenticated via$UNITY_ACCESS_TOKEN.
Integration Notes
Integrate this skill with Unity's core engine by adding XR packages via the Package Manager CLI: Unity -projectPath /path -importPackage path/to/xri.unitypackage. For external tools, link with Unreal or Blender by exporting FBX models, then import into Unity and apply XR scripts. If using version control, ensure .meta files are tracked; configure Git hooks to validate XR settings. For authentication in cloud integrations (e.g., Unity Cloud Build), set env vars like $UNITY_PROJECT_ID and use them in scripts: string projectId = System.Environment.GetEnvironmentVariable("UNITY_PROJECT_ID");. Always match Unity versions across integrations to avoid API mismatches.
Error Handling
Check for common XR errors like device not found: In code, use if (!XRSettings.isDeviceActive) { Debug.LogError("XR device inactive"); } before starting sessions. For AR tracking failures, handle via ARSession.stateChanged events:
ARSession.stateChanged += OnStateChanged; void OnStateChanged(ARSessionStateChangedEventArgs args) { if (args.state == ARSessionState.Error) { Debug.LogError(args.errorCode); } }
Use Unity's ErrorPause in Editor settings for debugging. For build errors, parse CLI logs with scripts, e.g., check exit codes: if (process.ExitCode != 0) { throw new Exception("Build failed"); }. Always wrap API calls in try-catch blocks for runtime exceptions, like try { arSession.Reset(); } catch (Exception e) { Debug.Log(e.Message); }.
Concrete Usage Examples
-
VR Interaction Scene: To create a simple VR grabber, start a Unity project, import XR Interaction Toolkit, add an XR Rig to your scene, and attach this script to an object:
using UnityEngine.XR.Interaction.Toolkit; public class SimpleGrabber : XRGrabInteractable { protected override void OnSelectEntered(SelectEnterEventArgs args) { rigidbody.isKinematic = true; } }Build and run on an Oculus device using
Unity -batchmode -buildTarget Android -executeMethod BuildPipeline.BuildPlayer. -
AR Plane Detection: For an AR app, add AR Foundation to your project, create a script to detect planes:
using UnityEngine.XR.ARFoundation; public class PlaneDetector : MonoBehaviour { private ARPlaneManager planeManager; void Start() { planeManager = gameObject.AddComponent<ARPlaneManager>(); planeManager.planesChanged += OnPlanesChanged; } }Test on a mobile device by building with
Unity -projectPath /path -buildTarget iOS -customBuildTarget iPhone.
Graph Relationships
- Connected to: unity-core (for general Unity scripting and engine features)
- Part of: ar-vr cluster (shares dependencies with other AR/VR skills)
- Relates to: 3d-modeling (for importing assets into XR scenes)
How it compares
This skill provides structured guidance and code examples for Unity XR development, simplify the process compared to building XR features from scratch.
Compared to similar skills
unity-xr side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| unity-xr (this skill) | 0 | 4mo | No flags | Intermediate |
| flutter-development | 1,555 | 5mo | No flags | Intermediate |
| android-kotlin-development | 268 | 5mo | Review | Advanced |
| llama-cpp | 21 | 8mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
android-kotlin-development
aj-geddes
Develop native Android apps with Kotlin. Covers MVVM with Jetpack, Compose for modern UI, Retrofit for API calls, Room for local storage, and navigation architecture.
llama-cpp
zechenzhangAGI
Runs LLM inference on CPU, Apple Silicon, and consumer GPUs without NVIDIA hardware. Use for edge deployment, M1/M2/M3 Macs, AMD/Intel GPUs, or when CUDA is unavailable. Supports GGUF quantization (1.5-8 bit) for reduced memory and 4-10× speedup vs PyTorch on CPU.
mcp-builder
anthropics
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
skill-creator
anthropics
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
build-macos-apps
glittercowboy
Build professional native macOS apps in Swift with SwiftUI and AppKit. Full lifecycle - build, debug, test, optimize, ship. CLI-only, no Xcode.