The latest release of Unity’s official support for visionOS 2.1 is now available for all Unity Pro, Enterprise and Industry subscribers on Unity 6 via our 2.1 packages. This release includes new PolySpatial features such as visionOS Object Tracking, head pose tracking over Play To Device, and many more.
Highlights for Release 2.1.2
- Added visionOS Object Tracking support.
- Head pose updates are now sent over Play To Device.
- We fixed a number of issues with Hands, XrMeshs, and Image Tracking over Play To Device.
- Added limited support for the
Allow Material Override
setting in shader graphs. - Added support for the
Cast Shadows
setting inUniversal
shader graph targets. - Added
PolySpatial Lighting Data Extension
, which provides a more user-friendly (thanPolySpatial Lighting Node
) way to include PolySpatial lighting behavior. - Improved performance of blend shapes by enabling asynchronous processing.
PolySpatial 2.1.2 Release Notes
Supported Version and Installation
Supported Versions
- Unity 6000.0.22f1 or newer (Apple Silicon version only).
- Xcode 16.0 - Xcode (16A242d) is required.
- visionOS 2.0 (22N331) SDK.
- 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
- Unity’s visionOS packages are now directly discoverable, and can now be directly installed via the package manager on Unity 6, or automatically installed via the XR Plugin Management package.
Known Issues
All App Modes
- 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.
- Building an app with “Development Build” in build settings may result in builds crashing with libc++abi error.
- To work around, build the app as release instead by unchecking “Development Build” in Build Settings.
- Unsupported D3D format error may be raised in the editor when running on a supported Windows environment.
Metal Rendering with Compositor Services
- 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.
- Mode switching to VR and sending the app to the background on visionOS causes the app to reopen as an empty volume.
- When Render Graph is disabled, there is no content when building Metal and Hybrid applications to devices.
- To work around, ensure that Render Graph is disabled in Project Settings → Graphics.
RealityKit with PolySpatial
- 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.
- After adding the PolySpatial package or package samples, you may get an error message about Unity being unable to resolve the Unity Collections package.
- To work around, restart the editor to clear the error.
- When upgrading a project from PolySpatial 2.0.0-pre.x revision, you may encounter a burst compiler error.
- To work around, restart the editor to clear the error.
- 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.
- 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.
- VisionOSTemplate Scene SampleSceneUnbounded spawned objects may get fixed to a position after spawning.
- Several warnings and errors observed when using Bake to Texture Particle Mode, affecting sample Scenes such as Balloon Gallery at runtime.
- 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.
- BakeToTexture particles can be partially culled unintentionally in certain conditions.
- Creating runtime Entities with Entity Command Buffers must occur after the first frame to avoid exceptions.
- OnApplicationFocus and OnApplicationPause do not currently work for PolySpatial with RealityKit and Metal.
Play to Device
- visionOS will attempt to background a volume if the user is facing away from it for an extended period of time. When the PlayToDevice connection window (the initial ready to connect window) detects it is being backgrounded for a period of time, it will disconnect itself from any active connections and reset itself. For best results, while connected to PlayToDevice, please keep this connection window within view to ensure visionOS does not mistakenly background it.
- VisionOSTemplate Scene SampleSceneUnbounded may be missing text when running over Play to Device.
- 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.
- RenderTextures currently cannot be performantly streamed over PlayToDevice. For example, attempting to run the example scene StereoRenderTextures over PlayToDevice may not work or may result in high amounts of lag and stuttering.
- XRMeshes are not currently supported over Play To Device on any platform other than macOS. When running Play To Device on a non macOS target, you will see this ignorable error as a result: [Diagnostics] Exception in multicast host command handler XRHostCommandHandler, removing: System.DllNotFoundException: PolySpatialXRPlugin assembly.
- Image Tracking sample Scene may stop rendering tracked objects on multiple Scene loads
Apple visionOS XR Plugin
- The AR Controls prefab in the built-in renderer samples for the Apple visionOS XR Plugin package is missing its script. It is referencing the guid from the script in the URP sample. You can fix this by either dragging the script from the project into the missing script in prefab edit mode, or manually fixing up the guid in a text editor. If you use the inspector, you must reconnect all of the references to objects from the prefab, so editing the text is preferred. Simply replace the guid on line 1304 in AR Controls.prefab with the correct value: 8c7435004e24343e79345d9b4e0d0120
- Running XR VisionOS BiRP sample Scenes in a new project in editor PlayMode as Metal app mode may throw a NullReferenceException error if PolySpatial packages are added as dependencies. Workaround is to remove PolySpatial packages from the project.
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.1.2)
- com.unity.xr.visionos (2.1.2)
- com.unity.polyspatial.visionos (2.1.2)
- com.unity.polyspatial.xr (2.1.2)
- com.unity.polyspatial.extensions (2.1.2)
- com.unity.ext.flatsharp (1.1.1)
Highlights for Release 1.3.9
- 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.
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)