Highlights for Release 1.3.9
The latest release of Unity’s support for visionOS is now available. This release contains numerous bug fixes, stabilization, and some additional features including:
- Fixed a RuntimeFailure exception that occurs occasionally when closing a windowed component.
- Persona feed on visionOS is now accessible via WebCamTexture (requires Unity 2022.3.41f1+).
- VisionOS Sorting Group, VisionOS Image Based Light Receiver, and VisionOS Grounding Shadow components will now apply to particle systems.
Important Note
To ensure compatibility with other verified packages in Unity 2022.3, Release 1.3.9 has downgraded our support for collections (com.unity.collections) from version 2.1.4 to version 1.2.3+. If you’ve manually specified a collections package version higher than 1.2.3+ in your project manifest, you will need to manually resolve this issue in your project manifest. See Known Issues below for more information.
Highlights for Release 2.0-pre.11
- Fixed conversion of shader graph derivative nodes to new MaterialX node names in visionOS 2.0 beta 5 and 6 (fixes text rendering).
- Changed hover behaviour of UGUI Selectables (Button, Dropdown, TMP_Dropdown, InputField, TMP_InputField, Scrollbar, Slider, Toggle) to change colours as they do in Unity.
- Persona feed on visionOS is now accessible via WebCamTexture after fixing a KeyNotFoundException (requires Unity 6000.0.13f1+).
Guidelines for Pre-release Packages:
While pre-release packages have stable features and APIs, there is ongoing work focused on performance improvements and overall stabilization. As such, users should not be pre-release packages for production. Production projects should use our latest 1.x packages which will continue to receive additional performance improvements and bug fixes.
For more details on the latest changes, please refer to the documentation and detailed release notes below.
PolySpatial 1.3.9 Release Notes
Supported Version and Installation
Supported Versions
- Unity 2022 LTS 2022.3.19f1 or newer (Apple Silicon version only).
- Xcode 15.4
- visionOS 1.1 (21O209) SDK - 1.1 is the minimum version we support. We are not aware of any blocking issues in the 2.0 beta.
- An Apple Silicon Mac device and the Apple Silicon macOS build of the Unity editor. The Intel version of the Unity editor is not supported.
- visionOS build support is also available using the Unity editor on Windows to create or update Xcode projects, but an Apple Silicon Mac is still required to build or interact with the project in Xcode.
Installation
- Please note that your packages will not automatically upgrade to this release unless explicitly requested. This is a bug that will be resolved in a future editor release. You must upgrade manually using one of the following options:
- Remove and re-add the packages using the package manager.
- Edit the project manifest directly (Packages/manifest.json) and change the version number for the packages to the exact versions listed at the end of these release notes.
- Open the project in the Unity Editor and click com.unity3d.kharma:upmpackage/com.unity.polyspatial.visionos@1.3.9
Known Issues
General
- Upon importing the package samples, some additional scenes now require the XR Interaction Toolkit (XRI) package to work. The XRI package will need to be added manually.
- Errors logged in editor when upgrading editor version for a project. These should not impact functionality.
- Some users may encounter errors after upgrading to 1.3.9 due to conflicts with the Collections package. PolySpatial 1.3.9 drops the Collections dependency version from 2.1.4 to 1.2.3. In some projects, other packages that depend on Collections 2.x (including
com.unity.polyspatial
andcom.unity.polyspatial.xr
) will retain this Collections version, which cannot be used with PolySpatial 1.3.9. You must resolve this conflict manually by either removing, upgrading, or downgrading these package versions inPackages/manifest.json
. - Metal mode (previously VR mode) currently exhibits additional lag for pinch/gaze input in visionOS Simulator and Development Builds to device. Please use non-development device builds to test input for Metal-based apps.
Universal RP
- PolySpatial packages no longer declare a dependency on Universal RP. Users upgrading to the latest PolySpatial package version may have Universal RP removed if the dependency was not declared explicitly. Manually re-add Universal RP if still required.
XR Interaction Toolkit
- To avoid namespace change errors in XRI, please use XRI 3.0 or newer.
Play to Device
- Connecting while the device is locked will cause both the current connection and all future connections to fail, as will locking a device (in other words, taking the headset off) while a P2D host app is running.
- To work around either issue, force quit and restart the P2D host app.
- Running a Scene with a rotating VolumeCamera also rotates the P2D window, and the rotation transformation persists after stopping PlayMode. This may leave the P2D window facing away from users, resulting in the blank back of the window.
- If an XR simulation environment is enabled, it will show up in the P2D session when connecting to the P2D app on a VisionOS device or simulation. Note that this XR simulation environment is an editor-only object, and will not appear when the app is built and deployed to a VisionOS device or simulation.
- Auto-detect devices in the P2D window may be inconsistent and not work if on the same machine you have two different Unity editors with the Play To Device window opened.
- Some errors are logged when running SampleSceneUnbounded in both editor PlayMode as well as in a P2D session.
- If you are using Play To Device from a Windows machine you will want to disable PolySpatial XR under Project Settings > XR Plug-in Management. At the moment XR features over P2D on windows will cause runtime exceptions in the editor, we will resolve these in a future release.
- Physics.PhysX error may get logged in the editor on a Windows environment when the Play to Device host app connection disconnects.
Additional Information
For additional information please visit the General Release Notes, or refer to the package changelog. These release notes apply to the suite of packages released as part of Unity’s support for visionOS:
- com.unity.polyspatial (1.3.9)
- com.unity.xr.visionos (1.3.9)
- com.unity.polyspatial.visionos (1.3.9)
- com.unity.polyspatial.xr (1.3.9)
- com.unity.ext.flatsharp (1.3.9)
PolySpatial 2.0 Pre-11 Release Notes
Supported Version and Installation
Supported Versions
- Please note that this suite of packages are still being refined, and we do not recommend using pre-release packages for production.
- Unity 6000.0.0f1 or newer (Apple Silicon version only).
- Xcode 16.0 - Xcode beta 6 version is required.
- visionOS 2.0 (22N5308B) SDK - We currently require the beta version of visionOS.
- An Apple Silicon Mac device and the Apple Silicon macOS build of the Unity editor. The Intel version of the Unity editor is not supported.
- visionOS build support is also available using the Unity editor on Windows to create or update Xcode projects, but an Apple Silicon Mac is still required to build or interact with the project in Xcode.
Installation
- At this time, you have to manually add the correct package versions to your project if you wish to use Unity’s visionOS support on Unity 6 Preview. This will be corrected in a later version of the editor, but for now you have to do one of the following:
- For new projects, we recommend manually adding the package com.unity.polyspatial.visionos and the version (2.0.0-pre.11) using the Package Manager UI. If you do not specify the correct version you may end up with an older version of the package that is not compatible with Unity 6 Preview.
- For existing projects, we recommend editing the project manifest directly (Packages/manifest.json) and change the version number for the packages to the exact versions listed at the end of these release notes to reduce the risk of compilation errors.
- Open the project in the Unity Editor and click com.unity3d.kharma:upmpackage/com.unity.polyspatial.visionos@2.0.0-pre.11
- Also verify that the correct version of com.unity.xr.visionos is installed, it should have a matching version of (2.0.0-pre.11), if not, then edit the manifest directly, or force an upgrade by using Install Package By Name… in the Package Manager, specifying the version number.
Known Issues
General
- Some player builds, especially when
Development Build
is checked, will encounter an error in Xcode that starts withARM64 branch out of range
. This is caused by IL2CPP code size crossing a certain threshold.- To work around, enable
IL2CPP Large Exe Workaround
underProject Settings > XR Plug-in Management > Apple visionOS
.
- To work around, enable
- Generated Xcode project built for visionOS (simulator or device) sets the Xcode target to Unity-Framework instead of Unity-VisionOS resulting in apps failing to launch from the resulting project in Xcode.
- To work around, manually update the Xcode target to Unity-VisionOS.
- Upon launching sample scenes, users are not prompted to import TMP assets, resulting in no visible text.
- To work around, manually import TMP essentials via Project Settings → TextMesh Pro menu.
- Upon importing the package samples, some additional scenes now require the XR Interaction Toolkit (XRI) 3.0 package to work. The XRI package will need to be added manually.
- After adding the PolySpatial package, you may get an error message about Unity being unable to resolve the Unity Collections package. While we are investigating the cause, simply restarting the editor will get around this issue and allow you to continue.
- Play to Device will have two separate versions on TestFlight now. One to support the 1.x features, and one to support the 2.x features using the beta version of visionOS.
- When upgrading a Unity 2022.3 project to Unity 6, you may encounter the following:
- If you have the PolySpatial samples imported, you’ll run into a number of errors with the VolumeCamera window events. This API has changed and will need to be manually fixed. The best solution is to just delete and re-import the samples.
- VolumeCamera window events have been consolidated into a singular OnWindowEvent. Whenever the previous window events would’ve been invoked, this event will be invoked instead. OnWindowEvent will supply a WindowState struct with several members, including an enum WindowEvent. This enum can be used to identify why OnWindowEvent was triggered, and to react to the event accordingly.
- For example, the listener function to react to an opened window would become something like:
void VolCamWindowEvent(VolumeCamera.WindowState state)
{
switch (state.WindowEvent)
{
case VolumeCamera.WindowEvent.Opened:
// Respond to opened window.
break;
}
}
- There are a number of Unity APIs that are deprecated in Unity 6. You’ll see warnings about those when using code based on Unity 2022.3 samples or templates. While this can be ignored, it would be best to upgrade your API usage in your code.
- VR development builds on versions of Unity 6 prior to 6000.0.6f1 will crash with the message “Graphics device is null.” You can work around this feature by deleting lines 374-377 and 379 in Classes/UnityAppController.mm in the generated Xcode project so that only [self startUnity: application]; remains at the end of the method. This issue was fixed in version 6000.0.6f1 and should no longer be an issue after upgrading.
- Actions that reset the AR Session, such as enabling or disabling hand tracking, while the app using Metal rendering can cause the app to crash.
- VisionOSTemplate Scene SampleSceneUnbounded may be missing text when running over Play to Device.
- Several warnings and errors observed when using Bake to Texture Particle Mode, affecting sample Scenes such as Balloon Gallery at runtime.
- Mode switching to VR and sending the app to the background on visionOS causes the app to reopen as an empty volume.
- Unsupported D3D format error raised in the editor when running on a supported Windows environment.
-
- Metal and Hybrid builds crashing with libc++abi error.
- Workaround: build the app as release instead by unchecking “Development Build” in Build Settings.
- There is no content when building Metal and Hybrid applications to device.
- Workaround: ensure that Render Graph is disabled in Project Settings → Graphics.
- When upgrading a project to the latest PolySpatial 2.x packages, the editor may stop responding with an Application out of memory prompt and require a force quit.
- Restarting the editor and running Assets → Reimport All should complete the project upgrade to the latest package versions.
- When doing a clean build and run for the visionOS template project, builds may fail on the first attempt.
- Retrying the build should resolve the build failures.
- Character Navigation sample Scene is cut off when resizing the volume to a smaller than default size. Increase the volume size to view all Scene content.
- PlayToDevice running on Vision Pro may get into a bad state if the headset enters a locked state (for example, if the user takes off the headset). After the user logs back into the headset, PlayToDevice may refuse connections. To fix, please press the Digital Crown and the top left button until the force quit menu appears, and force quit PlayToDevice to reset it.
- If you notice input lag while connected to PlayToDevice, please try increasing the “Limit Frames Per Second” in the PlayToDevice settings menu. For some internet connections, the default of 45 may end up causing input lag.
Universal RP
- PolySpatial packages no longer declare a dependency on Universal RP. Users upgrading to the latest PolySpatial package version may have Universal RP removed if the dependency was not declared explicitly. Manually re-add Universal RP if still required.
Additional Information
For additional information please visit the General Release Notes, or refer to the package changelog. These release notes apply to the suite of packages released as part of Unity’s support for visionOS:
- com.unity.polyspatial (2.0.0-pre.11)
- com.unity.xr.visionos (2.0.0-pre.11)
- com.unity.polyspatial.visionos (2.0.0-pre.11)
- com.unity.polyspatial.xr (2.0.0-pre.11)
- com.unity.polyspatial.extensions (2.0.0-pre.11)
- com.unity.ext.flatsharp (1.1.1)