visionOS Beta Release Notes (0.2)

We have published a new release (0.2.2) that provides support for Xcode 15 beta 5 and visionOS beta 2 SDK. For those who are testing on device at Apple’s developer labs or via a developer kit, make sure you’re using the right configuration outlined in the “Requirements” section.

To learn more about Unity’s visionOS beta program, please refer to this post. The following release notes apply to the suite of packages released as part of Unity’s visionOS beta program:

  • com.unity.polyspatial (0.2.2)
  • com.unity.xr.visionos (0.2.0)
  • com.unity.polyspatial.visionos (0.2.2)
  • com.unity.polyspatial.xr (0.2.2)

Requirements

  • Apple Silicon Mac for development
  • Unity 2022 LTS (2022.3.5f1 only)
    • There is a known issue with IL2CPP on newer versions of 22 LTS.
  • Xcode 15 beta 5
  • visionOS beta 2 SDK

Package Installation

  1. Redeem your coupon code to unlock the Apple VisionOS Beta subscription. This is a prepaid subscription used to manage access to our packages during the beta program. No payment is required to participate in the program.
  2. Launch the Unity Hub, or restart the Unity Hub if it is already open.
  3. Create a new Unity project using Unity 2022.3.5f1, and make sure visionOS Build Support (experimental) and iOS Build Support are installed.
    • Please note that visionOS Build Support (experimental) is only supported on Mac devices.
  4. Open the Package Manager (Window > Package Manager) and make sure Packages: Unity Registry is selected.
  5. Open the “+” dropdown and select “Add package by name…”
  6. Add the following packages:
    • com.unity.polyspatial.visionos
    • com.unity.polyspatial.xr

Experimental packages

As a reminder, experimental releases are not supported for production, but they provide early access for those who want to start testing our solutions for the visionOS platform. This also helps us make progress on development through your feedback.

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 with Unity 2022.3.5f1 using the Unity Hub > Open Project
  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. Open Project Settings (Edit > Project Settings…), select XR Plug-in Management, and make sure Apple visionOS is selected under the visionOS tab (the furthest on the right).
  5. Select the Apple visionOS setting under XR Plug-in Management and set the Volume Mode to Bounded.
  6. Build your project for the visionOS (experimental) platform.
  7. 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.

Please note that the samples included in version 0.1.0 of the PolySpatial package will overwrite your XR project settings, and may introduce issues with builds and XR Management project settings.
To fix this, close the Editor, delete the Assets/XR folder (or revert using version control), and restart the Editor. Everything in this folder should get regenerated with default values. You may need to re-enable loaders and restore settings you had previously.

General Notes
  • The samples have been updated to work in play mode in the editor.
  • The template has been updated with an In Editor Tutorial and interactive content for a bounded mode app.
  • [New Known Issue] The SampleScene is the only supported scene in the template project. The Expand View button in SampleScene is not functional.
  • [New Known Issue] When using the visionOS Simulator, you may experience visual issues with any object that has upward facing normals.
  • [New Known Issue] The SampleScene in the visionOS Template project has a camera component that is not tagged as Main Camera causing log spam related to Poly Spatial Host Camera
  • [New Known Issue] XR management has a visual bug with visionOS being enabled after importing the PolySpatial samples. To work around this, uncheck and recheck Apple visionOS on the visionOS tab (far right) of XR Plug-in management before making a build.
  • [New Known Issue] Interacting with the Slider component in the SpatialUI scene of the samples will crash the app
  • 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.
  • On build, the resulting project is still called “Unity-iPhone.xcodeproj”. (Fix in progress)
  • Only Apple Silicon machines are supported. Support for the x86-64 simulator is coming in a future release.
  • When running in the Simulator, you may need to disable Metal API Validation via Xcode’s scheme menu (Edit Scheme > Run > Diagnostics > uncheck Metal API Validation). (Fix in progress)
  • Some visionOS/iOS player settings are ignored or improperly applied. (Fix in progress)
  • The PolySpatial project validations are under the Standalone, Android and iOS tabs in the Project Validation window (Edit > Project Settings > XR Plug-in Management) (Fix in progress)
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](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)
  • Canvas / UGUI can consume lots of CPU and be very slow. (Fix in progress)
  • Unity Particle System effects may not function or look correct. (Fix in progress)
  • Input sometimes does not work, due to input colliders not being created on the RealityKit side. (Fix in progress – enable collision shape visualization in Xcode to see if this is your 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
  • Use XCode visualizations to see information about objects in your app

  • 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.

3 Likes

Which build should I be using on the VisionPro and where should I download it from? The Unity samples compile and run but nothing shows up in the device. Instead I see “Presenting a drawable without a device anchor. This drawable won’t be presented.” in the Xcode console at runtime.

Seed / update 2: visionOS 1.0 (21N5207g) is what we currently support with the latest packages and Xcode 15 beta 5.

1 Like

Is there a fix for VisionOS simulator not accepting input when building the samples or the template?
We have not been able to interact with the simulator. Building the hello world project from apple in Xcode works ok. Launching the simulator in a newer version of Xcode the environment works fine but the apps crash. This behavior is the same we were experienceing the previous version (0.1.2).
Silicon Mac, 2022.3.5f1, Xcode 15.5, simulator beta 2.

What does “work” mean? I can tab trough the options and some keys will change things that panel, like switching the gestures, but things like clicking and dragging and WASD don’t actually do anything. The one exception being I can drag the primitives around around. Should the camera move? should WASD do anything?

You should be able to select scenes from the project launcher scene, load into them, interact with the content. There is no 3D movement or 3D input just clicking with the mouse is available. WASD will not do anything related to camera movement. The project launcher scene has some helper controls (A and D) to cycle the selection.

There are known issues with the simulators and upgrading xcode versions which break things. Try the steps listed in this post to see if that fixes things. Xcode Beta 2 simulator broken controls - #3 by joejo

2 Likes

That did the trick, thanks!

2 Likes

Great that you have updated to a more recent version of XCode beta + VisionOS beta/seed, but unfortunately it is again behind the recent update from Apple:

  • XCode beta 8,
  • VisionOS SDK 3 (/simulator 3 runtime).

As I see many people in this forum now getting access to devices and also Apple fixing lot of bugs in their simulator/Xcode, it will be really great if you always update to the most recent version, so we get the best of both world (Polyspatial + all recent Apple changes).

As this is a beta program, there is no need imho to be on any stable version, better to get the latest/greatest (but potentially instable).

Thx !

1 Like

+1, at least it would be great to have a statement from Unity if a new VisionOS version is still compatible since updating the device cannot be undone but especially VisionOS 3 now brought quadruple click to reenroll eyes and hands which is really “handy” when switching wearers a lot.

1 Like

The PolySpatial releases currently have compatibility with a specific Xcode beta versions that are linked to a specific visionOS version. We are working on enabling the latest visionOS seed 3 and Xcode 15 beta 8 but with the latest release 0.2.2 we only support what is mentioned in the release notes

  • Xcode 15 beta 5
  • visionOS beta 2 SDK

There are breaking changes in the latest Xcode 15 beta that will be fixed in future package releases.

Hi Dan,

My devices is on Beta 1, and it has downloaded Beta 3. Do you know how I can install Beta 2 on it? And while I’ve got you, do you know how to roll back from Beta 3? We have another device that automatically updated and now can’t run Unity since it’s too new.

1 Like

Same boat. @DanMillerU3D How can we install seed/beta 2, the only options on device are not to download or update to 3?
How far off is support for seed 3?

I’m not aware of how to roll back or install seed 2 out of sequence. I would reach out to Apple about that process.

Nothing to share at this time but we are working on it.

OK thanks Dan. I appreciate the pressure your team must be under trying to keep up with the Beta versions when they marched forward without being able to roll back. Once you release support for Beta 3, we’ll upgrade our kits. We’re kind of in a weird spot right now; we have those on (21N5165g) and (21N5207g), so it appears we have two flavours of Beta 1 (edit: one is Beta 1, the other is Beta 2), and each has its own issues.

1 Like

21N5207g is seed 2 and is currently supported with the 0.2.2 release.

1 Like

Terrific, thanks for the clarification Dan, can confirm visionOStemplate0.2.2 runs on our (21N5207g) device.

1 Like