Project Configuration
August 8, 2025 ยท View on GitHub
To make this project functional in the editor and on a device, some initial setup is required.
Application Configuration
To run the project and use platform services, create an application on the Meta Quest Developer Center.
For device operation, a Quest application is needed, and for editor operation, a PCVR application is required. The following sections describe the necessary configuration.
Data Use Checkup
To use platform features, request the necessary data in the Data Use Checkup section of the application.

Configure the required Data Usage:
- User Id: Avatars, Destinations, Multiplayer, Oculus Username, Friends Invites, User Invite Others
- In-App Purchases: IAP
- User Profile: Avatars
- Avatars: Avatars
- Deep Linking: Destinations
- Friends: Multiplayer
- Blocked Users: Other - we use the Blocking API
- Invites: Multiplayer, Friends Invite, User Invite Others
Add-ons
This application integrates in-app purchases (IAP) to demonstrate durable and consumable purchases. Here are the expected configurations.
First, open the Add-ons from the Platform Services:

Then, set up the different Add-ons.

We created 3 durable SKUs, which can be purchased once, for the icons. We also created 1 consumable SKU, which can be purchased multiple times, for the pet cat.
Destinations
This application uses Destination configuration to enable users to invite friends to the same arenas and launch the application together.
First, open the Destinations from the Platform Services:

Then, set up the different destinations.

Main Menu
The MainMenu destination is unique to the user, where no other player can join. It is set up as follows:

The deeplink type is set to DISABLED, preventing users from joining this destination together.
Arenas
Different Arenas exist for each region:

This example is for the North American region. The deeplink type is ENABLE, and the deeplink data specifies the Photon region. The deeplink message format is specific to our project. The Group Launch capacity is set to a maximum of 6 players per Arena.
Here is a table for destination settings:
| Destination | API Name | Deeplink Message |
|---|---|---|
| Main Menu | MainMenu | N/A |
| North America | Arena | {"Region":"usw"} |
| South America | ArenaSA | {"Region":"sa"} |
| Japan | ArenaJP | {"Region":"jp"} |
| Europe | ArenaEU | {"Region":"eu"} |
| Australia | ArenaAU | {"Region":"au"} |
| Asia | ArenaAsia | {"Region":"asia"} |
Set the Application ID
Set the application ID in Unity.
The identifier (App ID) is found in the API section.

Place it in Assets/Resources/OculusPlatformSettings.asset.


Photon Configuration
To get the sample working, configure Photon with your account and applications. The Photon base plan is free.
- Visit photonengine.com and create an account.
- From your Photon dashboard, click "Create A New App."
- Create 2 apps: "Realtime" and "Voice."
- Fill out the form, setting the type to "Photon Realtime," then click Create.
- Fill out the form, setting the type to "Photon Voice," then click Create.
Your new app will now show on your Photon dashboard. Click the App ID to reveal the full string and copy the value for each app.
Open your Unity project and paste your Realtime App ID in Assets/Photon/Resources/PhotonAppSettings.asset.


Set the Voice App Id on the VoiceRecorder prefab:


Additional Setup for Realtime
To allow players to play in different regions with reduced latency, we used the different regions Photon provides. To simplify the project, we limited the number of regions used. Whitelist the regions used by the application.

The Photon Realtime transport should now work. Verify network traffic on your Photon account dashboard.
Upload to Release Channel
To use platform features, upload an initial build to a release channel. For instructions, visit the developer center. To test with other users, add them to the channel; more information is in the Add Users to Release Channel topic.
Once the initial build is uploaded, you can use any development build with the same application ID; there is no need to upload every build to test local changes.