hz-unity-platform-sdk

$npx mdskill add meta-quest/agentic-tools/hz-unity-platform-sdk

Integrates Horizon Platform SDK features in Unity/C# Meta Quest apps.

  • Guides setup and initialization of the Unity platform SDK package.
  • Depends on Oculus.Platform namespace and UPM package com.meta.xr.sdk.platform.
  • Recommends API usage based on the specific feature requested.
  • Provides code examples, error handling, and best practices for each API.

SKILL.md

.github/skills/hz-unity-platform-sdkView on GitHub ↗
---
name: hz-unity-platform-sdk
license: Apache-2.0
description: 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.
---

# Horizon Platform SDK - Unity/C# Integration Guide

## When to Use

Use this skill when a developer:
- Wants to integrate any Horizon Platform SDK feature in a **Unity** Meta Quest application
- Asks about setup, initialization, or dependencies for the Unity SDK package (`com.meta.xr.sdk.platform`)
- Needs help with a specific public platform API (achievements, IAP, users, etc.) in C#
- Is troubleshooting errors or status codes from any SDK package in Unity
- Asks about `Core.AsyncInitialize`, `Oculus.Platform`, or platform message handling

For **Android/Kotlin** apps, use the `hz-platform-sdk` skill instead.

## Quick Start

- **Setup guide**: https://developers.meta.com/horizon/documentation/unity/ps-platform-intro/
- **UPM Package**: `com.meta.xr.sdk.platform` via Unity Package Manager
- **Namespace**: `Oculus.Platform` (backward compatible with legacy LibOVRPlatform SDK)

## Available APIs

| Feature | Reference | Description |
|---------|-----------|-------------|
| Abuse Report | `abuse-report` | Listen for system Report button events, respond with in-app flow |
| Achievements | `achievements` | Unlock, track progress, and query simple/count/bitfield achievements |
| Application | `application` | Get app version, launch other apps, manage self-update downloads |
| Application Lifecycle | `application-lifecycle` | Detect launch type, handle deeplinks and invites, log results |
| Asset File | `asset-file` | List, download, cancel, and delete downloadable asset files (DLC) |
| Challenges | `challenges` | Time-bound score competitions on top of leaderboards |
| Consent | `consent` | Check and launch user consent flows with version bumps |
| Device Application Integrity | `device-application-integrity` | Verify device and app integrity via JWT attestation |
| Entitlements | `entitlements` | Mandatory anti-piracy check required for all Store apps |
| Group Presence | `group-presence` | Set/clear presence, manage sessions, send invites, handle join intents |
| In-App Purchases (IAP) | `iap` | Retrieve products, purchase history, checkout flow, consume purchases |
| Language Pack | `language-pack` | Get/set language packs with auto-download |
| Leaderboards | `leaderboards` | Retrieve leaderboard info, fetch/write entries with filtering |
| Notifications | `notifications` | Send device notifications with toast, feed persistence, and action buttons |
| Rate and Review | `rate-and-review` | Check eligibility and launch the system rating/review UI |
| Rich Presence | `rich-presence` | Set/clear rich presence (deprecated; prefer group-presence) |
| User Age Category | `user-age-category` | Query user age group and report age categories for compliance |
| Users | `users` | Retrieve user profiles, friends, access tokens, identity verification |

## How to Use

1. **First**, read `references/common-setup.md` for shared setup instructions, initialization code, Editor testing, and common patterns that apply to all APIs.
2. **Then**, read the specific reference file for the API you need (e.g., `references/iap.md` for in-app purchases).

Each reference file contains only the package-specific content: API operations, data types, examples, and package-specific notes. The common setup, initialization patterns, and coding conventions are centralized in `common-setup.md` to avoid duplication.

More from meta-quest/agentic-tools

SkillDescription
hz-android-2d-portingGuides porting existing Android 2D apps to Meta Quest and Horizon OS — input adaptation, panel layout, and design requirements. Use when adapting a mobile Android app for Quest.
hz-api-upgradeUpgrades Meta Quest apps to newer Horizon OS SDK versions — migration guides, deprecated API replacements, changelog. Use when updating SDK versions or fixing deprecated API warnings.
hz-immersive-designerGuides design of comfortable, intuitive VR/MR experiences for Meta Quest and Horizon OS — comfort guidelines, interaction patterns, spatial layout, accessibility. Use during UX design review or when evaluating comfort and accessibility.
hz-iwsdk-webxrBuilds WebXR experiences for Meta Quest and Horizon OS using the Immersive Web SDK (IWSDK) — ECS architecture, Three.js integration, spatial UI. Use when creating web-based VR/MR apps for Quest Browser.
hz-new-project-creationScaffolds new Meta Quest and Horizon OS projects with recommended settings for Unity, Unreal, Android/Spatial SDK, or WebXR. Use when creating a new Quest app from scratch.
hz-perfetto-debugAnalyzes Meta Quest and Horizon OS VR performance using Perfetto traces — frame timing, CPU/GPU bottlenecks, render pass analysis. Use when profiling frame drops, jank, or thermal issues on Quest devices.
hz-platform-sdkGuides integration of the Horizon Platform SDK for Meta Quest and Horizon OS Android/Kotlin apps — achievements, IAP, users, leaderboards, 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 17 public platform SDK packages.
hz-psdk-integrationFor 3P / EXTERNAL developers: guides interactive Horizon Platform SDK (PSDK) integration for Meta Quest and Horizon OS Android/Kotlin apps — analyzes the codebase, recommends public platform features, plans the integration, and validates on device. Uses the external toolchain (Gradle, metavr, a developers.meta.com / Rocksteady App ID). For 1P apps inside fbsource (buck, Chesterfield/ni, adb), use psdk_1p_onboarding_agent instead.
hz-quest-verify-first>-
hz-simpleperf-debugProfiles Meta Quest and Horizon OS application CPU performance using simpleperf — workload classification, CPU hotspot recording, kernel overhead measurement. Use when diagnosing whether an app is CPU-bound, memory-bound, or I/O-bound on Quest devices.