We’re excited to announce the availability of Play to Device, a powerful feature that drastically improves iteration and debugging workflows. Play to Device enables you to:
- Efficiently iterate and live preview your content across the Unity editor on the visionOS simulator or the Apple Vision Pro device
- Deploy your content without rebuilding an Xcode project
- Access Unity editor’s play mode features on the visionOS simulator and Apple Vision Pro device
This feature is delivered through the Play to Device Host application, which can be installed on the visionOS Simulator or an Apple Vision Pro device. With the Play to Device host running, you can press Play in the Unity Editor and see your content appear in the simulator or on device, rendered by RealityKit. No intermediate builds are required.
Any changes you make in Unity Editor - such as creating game objects, modifying inspector values, updating and recompiling shader graphs, etc. - will be synchronized to the simulator/device in real time, and any interactions you perform on the host will be synchronized back to the editor. You can learn more about this workflow by reading the documentation.
The Play to Device Host must match your PolySpatial package version exactly. The table below provides links to the Xcode and device-specific hosts compatible with each PolySpatial release.
|PolySpatial Version||Supported Unity Versions||Required Xcode Versions||Required Firmware Version||Xcode .App Link (Apple Silicon)||Device TestFlight Link|
|0.6.0||2022.3.11f1 and higher||Xcode 15.1 Beta 1 and higher||visionOS beta 4 (21N5259k) and higher||Download Link||Join the Unity Play to Device Host beta - TestFlight - Apple|
To install the host app for the visionOS simulator:
- Download the “Play To Device Host.app.zip” to your Apple Silicon-based Mac. See the Compatibility Matrix above to identify the right version given your PolySpatial version.
- Extract the zip file revealing “Play To Device Host.app” in Finder.
- Start the visionOS simulator, either by going to “Xcode > Open Developer Tool > Simulator” within Xcode, or using Spotlight (command+space) and typing “simulator”.
- When the simulator is running, you can see the home screen with various app icons. Drag “Play To Device Host.app” from the Finder window into the simulator window.
- After a few seconds, you should see “Play To Device Host” appear as one of the app icons on the home screen. Note that you may have to scroll the app list to see it.
To install the host app for an Apple Vision Pro device:
- Follow the TestFlight invite link on your computer or smartphone (or in Safari on the device). You should see an invite code. See the Compatibility Matrix above to access a link compatible with your PolySpatial version.
- Open the TestFlight app on your Vision Pro device, signing into your Apple account if necessary.
- Tap “Redeem Code” in the TestFlight app.
- Enter the code you saw in your browser after following the invite link.
- Tap “Download” in the TestFlight app after reading the build information and release notes.
- After a few seconds, either tap “Open” from TestFlight or navigate to the Play To Device Host application that now appears on your home screen.
Once you’ve installed a host app for device or simulator (see above):
- Make sure the host and development machine are on the same LAN.
- Launch the host app.
- In Unity Editor, open the Play to Device Editor window by clicking on
Window > PolySpatial > Play to Device
- Copy the IP address displayed within the Host app to the “Host IP” field of the Play to Device editor window.
- Enable Connect to Player on Play Mode
- Enter Play mode in the Unity Editor. The Unity Editor will connect to the host and begin streaming your experience to the host in real time. You can then view, play, or interact with your experience via either editor or device; changes and interactions will automatically stay in sync.
After initial setup, your content will be synced to the host app each time you press play, as long as Connect to Player on Play Mode is enabled and the host remains live. Refer to the documentation for more information.
The Play to Device Host currently crashes if your app attempts to load another scene within the same session after start. We are working on a fix for this.
I’m having trouble connecting to the Play to Device Host.
Make sure both the host machine and the mobile device are connected to the same WiFi network and ensure your firewall is not blocking the connection. If it is, then you may have to temporarily disable it using the appropriate tool for your OS.
I’m observing lag, or my editor seems to hang.
In Unity Editor, try enabling
Run in Backgroundunder
Project Settings > Player > Resolution and Presentation. While this setting is not currently exposed under the visionOS platform, it is shared for all build targets. You can enable it under the Standalone build target tab.
My app doesn’t seem to receive any input once connected to the host.
If your app is not receiving input from the Play To Device host (especially when using the visionOS Simulator), you may need to change your input settings. The PolySpatial package contains a preset input asset in its Package Manager samples, but the important settings to check are:
Background Behavior: Ignore Focus
Play Mode Input Behavior: All Device Input Always Goes To Game View