📌 General Release Notes

Package Installation

  1. Launch the Unity Hub, or restart the Unity Hub if it is already open.
  2. Create a new Unity project using the latest supported version of Unity 2022.3, and make sure visionOS Build Support And iOS Build Support are installed.
    • Please note that visionOS Build Support is only supported on Apple Silicon machines.
  3. Install the XR Plugin Management package.
  4. Once installed, you can enable visionOS in the XR Plugin Management UI which will allow you to choose to build for Virtual Reality or Mixed Reality.
  5. Selecting Mixed Reality will automatically install additional required packages. Upon completion of installation, you should see the following packages installed:
    • com.unity.polyspatial
    • com.unity.xr.visionos
    • com.unity.polyspatial.visionos
    • com.unity.polyspatial.xr

PolySpatial Version Support Summary

PolySpatial package versions Unity Version Xcode Version
1.2.x 2022.3.19f1 and higher 15.3
2.0.0-pre.x 6000.0.0f1 and higher 15.3
Template and Samples

Template Installation

  1. Download the visionOS Project Template here.
  2. Unzip the file to your desired project location.
  3. Open the project using Unity Hub and the compatible version of Unity 2022 LTS.
  4. Further information is provided with In-Editor Tutorials in the Template, and the template documentation.

Unity PolySpatial Samples

The PolySpatial Samples are built with the Universal Render Pipeline. If you are not starting with the template project referenced above, please create a new project using the Universal Render Pipeline, or manually add and configure URP to your project. Without this, materials from the samples will appear pink in the editor.

  1. Once you have installed our Unity packages, go to the Package Manager (Window > Package Manager) and select the Unity PolySpatial package
  2. Under the Samples tab, select Import on the Unity PolySpatial Samples
  3. Once the samples are installed, open the Scenes folder and add all the scenes to your build settings (File > Build Settings…). Make sure the ProjectLauncher scene is the first one.
  4. Make sure PolySpatial is enabled in the Player Settings > PolySpatial and make sure Apple visionOS is checked in XR Plug-in Management.
  5. Build your project for the visionOS (experimental) platform.
  6. Open the Xcode project and target the Apple Vision Pro simulator to launch the project launcher scene. From here, you can use the arrows to select and click Play to load a scene.
General Notes
  • There is a known device issue where the app builds occasionally show up very dark when doing subsequent builds. To work around in the visionOS simulator, select device and erase all content and settings. .
  • There is a known issue with content not appearing when the Splash screen is enabled. Disable the Splash screen in Player Settings > Splash Image.
  • The template project should have two supported scenes, SampleScene and SampeSceneUnbounded.
  • Please note that when running apps in visionOS Simulator, the result may be different than the Vision Pro headset. Check out Apple’s guide on running your app in the simulator to learn more.
  • While using the Play to Device app and connecting to scenes, the host app may freeze up even after exiting playmode in the editor. You may need to force quit the simulator if it becomes unresponsive.
  • Play to Device app crashes when closing and reopening host app during active connection.
  • For bounded content, in Play to Device, you may see two copies of the scene in game view with PtD connected.
  • In the Play to Device and the Simulator, you may experience dark lighting, which should go away if you restart or change environments.
  • Currently, the Play to Device app only gets a 1m^3 volume camera for both bounded and unbounded Scenes.
  • Particle System particles scale based on dimensions of a Bounded Volume Camera.
  • MaterialX conversion warnings appear when adding PolySpatial packages.
  • PolySpatial Samples do not change “Import” to “Reimport” when imported.
  • Bake to mesh particle materials with an assigned base map texture render as diagonal pink squares in the Play to Device host app. Reassigning the texture at runtime is a workaround.
Windowed Apps / Virtual Reality
  • Crashes may be seen when some pixel formats are used. (Fix in progress.)
  • To receive controller input, you’ll need to use a prerelease version of the Input System package. In your project’s Packages/manifest.json, include:

"com.unity.inputsystem": " https://github.com/Unity-Technologies/InputSystem.git?path=/Packages/com.unity.inputsystem"

visionOS Shared Space / PolySpatial
  • Objects may flicker in and out of visibility, especially when using a bounded volume. (Platform issue.)
  • An application cannot have more than one volume at this time. (Platform issue.)
  • Volume camera dimensions cannot be changed dynamically. (Platform issue.)
  • When using an Unbounded Volume Scene, an empty 2D window appears at app launch. (Fix in progress.)
Frequently asked questions

Q: My input code is not working and I’m not getting the correct touch phases

A: Make sure you are using the correct touchphase

using TouchPhase = UnityEngine.InputSystem.TouchPhase;

Q: Everytime I launch my app the home menu icons will appear in front of it.

A: This is a known issue. (Platform issue.)

Q: Hover component shows up differently depending on the object geometry.

A: This is a known issue. (Platform issue.)

Q: My app is not responsive or updating slowly.

A: Check the performance tab in Xcode and see if the usage percentages are near or over 100%. If your app is not hitting performance, the simulator and passthrough video will not slow down or stutter but the objects in your app might.

Tips for getting started

  • Make sure you have the leftmost icon selected in the simulator for interacting with content. Other icons are for navigating the simulator and do not register input.

1 Like

Is it a typo that 0.5.0 needs visionOS beta 4 and not 5? The package versions have followed the beta versions up until now. If this is not a typo, it might create some confusion (and blocked devices since you can’t downgrade the OS).

No; beta 5 isn’t under wide release yet, AFAIK. We’re still testing with beta 4.

I wanted to give a heads up that Apple is requiring all DevKits to be upgraded to the latest seed 5 VisionOS Beta by Tuesday at 3pm. In their words, “Apple is working towards 100% update by EOD Tuesday Pacific time.”… We also have to provide confirmation its been done. The specific build they want on device is “21N5260b”. I appealed the request but it’s likely to be denied since this update is related to security concerns.


Thanks Matt. While we’re still running the latest seed 5 through our full suite of tests, we can report back that there were no issues when building our samples and testing on device. There may still be trouble areas which we’ve not identified yet, will share those if they come up.

1 Like
  • Currently an app must be set to either bounded or unbounded. The settings in the scene volume camera must match the XR Plug-in management Apple VisionOS settings. For building the unbounded scenes in the Samples (Mixed Reality, Image tracking) make sure to not include a scene with a bounded volume camera (Project Launcher).

Is this still the case? At Unite Amsterdam I think Matt from Unity showed an example where you could swap between bound and unbound mode with a radio style button.

I am trying to run the Mixed Reality scene in the simulator, but the app states that ARKit is not supported in the simulator. Is this really the case? This would be a bummer for me, since our app relies heavily on ARKit and we don’t have an actual device for testing purposes.

1 Like

I started to use visionOS seed 7 and Xcode 15.2 Beta. Which Unity version is suitable?

I’ve been using beta 7 and Xcode 15.2 beta and haven’t seen any issues so far. I’d recommend staying on Unity 2022.3.13f1 though, as in later versions there is a serious issue where a UnityWebRequest will cause a crash

1 Like