Cross-platform XR Starter

Level
BEGINNER
Topology
SHARED AUTHORITY

Overview

The Cross-platform XR Starter sample demonstrates how to build a cross-platform XR project on top of OpenXR, leveraging the Fusion XR addons.
No specific code was required to build this project : it is composed entirely from prefabs and components shipped with the XR addons.
It is intended as a quick-start reference for developers who want to bootstrap a networked, multi-device XR experience.

The scene illustrates a few XR features:

  • avatar synchronization, including hand tracking
  • teleportation
  • grabbing and touching objects
  • 2D and 3D drawing synchronization
  • haptic and audio feedback

For a detailed understanding of how each feature works, please refer to the documentation of the addon responsible for it (see the Used XR Addons section below).

Technical Info

  • This sample uses the Shared Mode topology,
  • The project has been developed with Unity 6.3, Fusion 2.0.12 and Photon Voice 2.63,
  • Headset firmware version:
    • Meta Quest v2.1 & v2.3
    • Samsung Android v14

The same APK can be installed on a Meta Quest headset or on a Samsung Android XR device.

Before you start

To run the sample:

  • Create a Fusion AppId in the PhotonEngine Dashboard and paste it into the App Id Fusion field in Real Time Settings (reachable from the Fusion menu).

  • Create a Voice AppId in the PhotonEngine Dashboard and paste it into the App Id Voice field in Real Time Settings.

  • Then load the main sample scene and press Play.

Download

VersionRelease DateDownload
2.0.124월 29, 2026Fusion Cross-platform XR Starter 2.0.12

Handling Input

Meta Quest / Samsung Android XR

  • Teleport: press a stick or the dedicated teleport button to display a pointer. You will teleport on any accepted target on release.
  • Touch: simply put your hand over a button to toggle it.
  • Grab: put your hand over the object and grab it using the controller grab button, or pinch index and thumb when using hand tracking.
  • Draw: grab a pen and press the trigger (or pinch while hand tracking) to draw on a whiteboard (2D) or in the air (3D). Change the selected color by pushing the controller stick up or down.
  • Watch menu: look at your wrist to open the watch menu and change network parameters.

Folder Structure

The main folder /Cross-platform-xr-starter contains all elements specific to this sample.

The /Photon folder contains the Fusion and Photon Voice SDK.

The /Photon/FusionAddons folder contains the XR Addons used in this sample.

The /XR folder contains configuration files for virtual reality.

Architecture overview

The Cross-platform XR Starter sample does not contain any custom code.
The scene is entirely built by composing prefabs and components provided by the Fusion XR addons.
The addons cooperate to cover rig synchronization, interactions, voice, drawing, UI and feedback.

To understand the behavior of a specific feature in depth, refer to the documentation of the addon responsible for it, listed in the next section.

Compilation

To build the project, make sure the following options are enabled in the OpenXR settings:

  • Meta Quest Support
  • Android XR Support
  • Hand Tracking Subsystem

With those three options enabled, the same APK can be installed on a Meta Quest headset or on a Samsung Android XR device (no additional per-platform build is required).

Click to zoom

Used XR Addons

To make it easy for everyone to get started with their XR project prototyping, we provide a comprehensive list of reusable addons.
See XR Addons for more details.

Here are the addons used in this sample.

XRShared

The XRShared addon provides the shared foundation used by every other XR addon. It handles rig synchronization, basic interactions, auto-configuration scripts, and is required for the other addons to work.

See XRShared for more details.

Blocking Contact

Used to block 2D pens on the whiteboard surface.
See Blocking Contact for more details.

Connection Manager

Used to manage the Fusion connection (game mode, room name, user prefab, etc.).
See Connection Manager for more details.

Data Sync Helpers

Provides helper classes that simplify data synchronization for 2D and 3D drawings.
See Data Sync Helpers for more details.

Dynamic Audio Group

Adapts voice transmission to the distance between players, to optimize comfort and bandwidth.
See Dynamic Audio Group for more details.

Feedback

Centralizes sounds and manages haptic & audio feedback.
See Feedback for more details.

Line Drawing

Handles 3D drawing synchronization between users.
See Line Drawing for more details.

Magnets

Used to snap sticky notes on the whiteboard.
See Magnets for more details.

MetaCoreIntegration

Synchronizes the hand state of Meta's OVR hands, including finger tracking.
See Meta Core integration for more details.

Physics

Used to handle cubes with partial physics.
See Physics for more details.

StickyNotes

Provides a ready-to-use sticky notes dispenser.
See StickyNotes for more details.

TextureDrawing

Provides the drawers and boards core prefabs and handles 2D drawing synchronization.
See TextureDrawing for more details.

VoiceHelpers

Provides helper classes that simplify voice setup for a Fusion-based project.
See VoiceHelpers for more details.

WatchMenu

Provides classes to create a simple interactable watch menu. In this sample, it is used to change the network parameters.
See WatchMenu for more details.

3rd Party Assets and Attributions

The sample is built around several awesome third party assets:

Back to top