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.platformvia 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
- First, read
references/common-setup.mdfor shared setup instructions, initialization code, Editor testing, and common patterns that apply to all APIs. - Then, read the specific reference file for the API you need (e.g.,
references/iap.mdfor 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.