Changelog
All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[1.3.11] - 2024-11-13
Added
Changed
- Quit button in sample scene is marked non-interactable in play mode to make it clear that it doesn't have any effect (
Application.Quit
doesn't do anything in play mode).
Deprecated
Removed
Fixed
- Fixed Windows long path error when processing ARReferenceImage's build postprocessor.
- Fixed potential NullReferenceExceptions in build preprocessor.
- Fixed a missing script on the AR Controls prefab in the built-in sample.
- Fixed an issue in
MetalSampleURP/Shaders/UnlitTransparentColor.shader
where it was writing alpha values to the framebuffer, causing pass-through to bleed through AR planes in the URP sample scene.
Security
[1.3.9] - 2024-08-26
Added
- Exposed
SkipPresentToMainScreen
setting inVisionOSSettings
. This will be enabled by default, along with a Project Validation rule to encourage its use, on Unity 2022.3.42f1, which includes fixes for this mode. This version of Unity fixes a GPU resource leak related to this setting. - Added
VisionOS.SetMinimumFrameRepeatCount
API to enable content that can't hit 90hz to ask for more time to render each frame. - Added Initial Target Frame Rate runtime setting which sets
Application.targetFrameRate
andVisionOS.SetMinimumFrameRepeatCount
at start-up based on the selected option. - Fixed an issue where the app can crash if the AR Session is restarted when rendering with Metal. This may also fix other Metal rendering crashes accompanied by error logs that start with
BUG IN CLIENT:
. - Added support for HDR rendering for Metal and Hybrid app modes. This includes a variety of fixes, project validation rules, and updates to the package samples. HDR rendering requires a minimum Unity version of 2022.3.45f1.
Fixed
- Fixed Windows long path error when processing ARReferenceImage's build postprocessor.
[1.3.1] - 2024-07-09
[1.3.0] - 2024-06-26
Added
- Added
VisionOS.AuthorizationChanged
andVisionOS.QueryAuthorizationStatus
APIs to enable user code to query and respond to changes in AR authorizations like Hand Tracking and World Sensing.
Changed
Deprecated
Removed
Fixed
- Fixed a crash that can happen when unloading a scene after tracking an image with ARKit image tracking.
- Fixed issues in the InputSystem UI sample scene.
- Fixed random compilation issue when targeting visionOS, removed LaunchScreen-iPhone.storyboard from xcode project output.
- Wrap all MonoPInvokeCallback methods in try/catch to avoid potential crashes in player builds.
- Fixed potential exceptions in OnAuthorizationChanged that can happen if the original call was made off the main thread.
- Fixed an issue where visionOS player builds can crash when trying to collect crash logs.
[1.2.3] - 2024-04-23
[1.2.2] - 2024-04-22
[1.2.1] - 2024-04-22
[1.2.0] - 2024-04-19
Added
- VisionOSTrackingState for hand joints to provide extra data about whether or not the joint is in view.
Changed
- Updated VR samples to support two-handed interactions.
- Enabled shadows in URP VR sample.
- Tracking origin mode now correctly reports to XROrigin, which will vertically reposition content. The CameraOffset transform which is usually a child of XROrigin will now have it's local Y position set to 0 for all requested tracking origin modes. Some projects may need to be updated to account for this change. Note: XR Interaction Toolkit samples and GameObject menu presets will behave differently than they did in prior versions.
- Re-organize Swift app trampoline for VR mode to be more modular and share code with MR mode. This should make it easier to extend and re-configure the Xcode project to implement custom SwiftUI solutions.
- Always report ARKit hand joint tracking state as
XRHandJointTrackingState.Pose
, as long as part of the hand is tracked. This exposes estimated joint poses that were previously unavailable when using the result ofar_skeleton_joint_is_tracked
to set the joint tracking state. Estimated poses are provided even when the joint is not in view, andar_skeleton_joint_is_tracked
returnsfalse
. - Add a floor object to VR sample scene and tweak XR Origin and interactable transforms to be in a more sensible location.
Fixed
- Fix compilation issues when targeting tvOS.
- Fix compilation issues when making a non-visionOS build while visionOS is the active build target.
- Fix VR frame timing issues.
[1.1.6] - 2024-03-12
[1.1.4] - 2024-02-26
Added
Changed
Deprecated
Removed
Fixed
Security
[1.1.3] - 2024-02-22
Added
Changed
Deprecated
Removed
Fixed
Security
[1.1.2] - 2024-02-21
Added
Changed
Deprecated
Removed
Fixed
Security
[1.1.1] - 2024-02-15
Added
- Selected validation profiles are now set automatically depending on the App mode dropdown. Users targeting multiple modes can still manually override the selected validation profiles.
- Added extension method
GetVisionOSHandJoint
toXRHand
for platform-specific data. - Added project validation rule and settings error telling users they need the
Apple visionOS
XR Loader enabled for VR builds to work.
Changed
- Cleaned up trampoline code.
VisionOSPlayModeInput
reports position/rotation data in the camera's local space to more accurately reflect input on the device.- Updated the Project Validation rules category to include a small description.
Deprecated
Removed
- Removed unused
VisionOSAppController
that was added to Xcode projects for VR builds.
Fixed
- Fixed an issue where VR apps would crash when the user opened the OS menu or Control Center (requires Unity 2022.3.20f1).
- Fixed an issue where VR apps would present frames in the background, resulting in logs that say
Insufficient Permission (to submit GPU work from background)
(requires Unity 2022.3.20f1). - Updated samples to properly handle scenes with an XR Origin that is moved, rotated, or scaled (i.e. no longer located at 0, 0, 0).
- Fixed launch crash on device when you do an incremental build over a folder that previously held a build with Target SDK set to Simulator.
- Fixed culling issue on device where objects were culled aggressively on the periphery.
- Fixed an issue where Xcode projects would fail to build if they were moved from their original location. VisionOSSettings.swift now uses a project-relative path instead of an absolute path.
Security
[1.0.3] - 2024-01-20
Added
- Added a Project Validation rule to check for UniversalRenderData with
Depth Texture Mode
set to anything other thanAfter Opaques
, which will cause rendering glitches when no opaque objects are visible. - Added a workaround to build the post processor for
ARM64 branch out of range
error which can occur when building in Xcode. - Added
interactionRayRotation
control which exposes a gaze ray which can be used for draggable UI elements. It begins with a rotation pointing in the direction of the gaze ray, and follows a position which is offset by the change indevicePosition
. In practice, users can gaze at a slider, pinch their fingers and move their hand right and left to drag it side-to-side. - Added a UI canvas to
Main
sample scene, configured to use theXRUIInputModule
fromcom.unity.xr.interaction.toolkit
. - Added an
InputSystem UI
scene configured to use theInputSystemUIInputModule
fromcom.unity.inputsystem
. - Added an affordance to the Apple visionOS settings UI to install PolySpatial packages if the user switches AppMode to Mixed Reality or clicks the Install Packages button visible when AppMode is set to Mixed Reality.
- Add Windowed AppMode.
Changed
- Updated Xcode version used to build native libraries to 15.2 (15C500b)
- Renamed
devicePosition
anddeviceRotation
input controls toinputDevicePosition
andinputDeviceRotation
.
Deprecated
Removed
Fixed
- Use the correct deployment target version
1.0
when invokingactool
to compile image marker libraries. - Fixed an issue in samples where the world anchor that is placed by user input used an empty GameObject instead of a visible prefab.
- Fixed the
HandVisualizer
script in package samples to properly disable joint visual GameObjects when the joint is not tracked.
Security
[0.7.1] - 2023-12-13
Added
- Added a step to the build pre-processor which disables splash screen on visionOS player builds.
- Enabled foveated rendering for VR builds on Unity 2022.3.16f1 and above.
- Added extension method
TryGetVisionOSRotation
toXRHandJoint
when using theUnityEngine.XR.VisionOS
namespace. If you depended on the rotations reported before this version, use thisTryGetVisionOSRotaiton
instead of the rotation reported fromXRHandJoint.TryGetPose
.
Changed
- Changed the platforms behavior to report rotations of hand joints through
XRHandSubsystem
that align more closely with OpenXR's rotations. If you depended on the previous reporting of rotations, use the rotation reported byTryGetVisionOSRotation
, a new extension method toXRHandJoint
. - All packages now require 2022.3.15f1 and later (rather than 2022.3.11fa and later) to pick up fixes for various memory leaks made in 15f1.
Deprecated
Removed
- Support for Unity versions earlier than 2022.3.11f1.
- Removed gray "Loading..." window in VR builds. VR apps now launch directly into the immersive space.
Fixed
- Fixed a linker error in Xcode when building the visionOS player with App Mode set to VR, but the visionOS loader is not enabled.
- Fixed a memory leak in
VisionOSHandProvider
. - Fixed a memory leak caused by using particle systems in VR mode.
- Implemented lifecycle management. Unity now suspends and resumes properly when the home menu is brought forward.
- Fixed an issue where closing the gray "Loading..." window would mute audio.
- Fixed an issue where spatial audio would use the gray "Loading..." window as its source location.
- XRHMD Input device now properly reports HMD input. This enables existing VR projects and templates to properly track head movement in visionOS VR builds.
Security
[0.6.3] - 2023-11-28
Added
Changed
- Changed license check modal option from "See Pricing" to "Learn about a 30-day trial".
Deprecated
Removed
Fixed
Security
[0.6.2] - 2023-11-13
Added
Changed
Deprecated
Removed
Fixed
Security
[0.6.1] - 2023-11-09
Added
Changed
Deprecated
Removed
Fixed
Security
[0.6.0] - 2023-11-08
Added
- Added additional input controls on
VisionOSSpatialPointerDevice
which are needed to drive an XR Ray Interactor. - Added VR samples for both Built-in and Universal Render Pipelines.
Changed
Deprecated
Removed
Fixed
- Fixed compile errors when the project has
com.unity.render-pipelines.core
but notcom.unity.render-pipelines.universal
. - Fixed issue with over releasing material references for canvas items.
Security
[0.5.0] - 2023-10-26
Added
VisionOSSpatialPointerDevice
for pinch/gaze input support in VR mode.
Changed
Deprecated
Removed
Fixed
Security
[0.4.3] - 2023-10-13
[0.4.2] - 2023-10-12
Fixed
- Fixed an issue where VR builds would only render to the left eye in device builds when using the built-in pipeline.
[0.4.1] - 2023-10-06
Added
- PolySpatial now supports Xcode 15.1 beta 1 and visionOS 1.0 beta 4
- Project Validation rules for Linear Color Space, ARSession + ARInputManager components, and cameras generating depth textures inside of the VisionOS XR package
Removed
- Removed
VisionOSSettings.renderMode
,VisionOSSettings.deviceTarget
, and relatedvisionos_config.h
file that was generated during builds. The XR plugin will automatically switch between single-pass and multi-pass rendering depending on whether the app was built for the visionOS simulator or a device.
Fixed
- Fixed an issue where VR builds would only render to the left eye in device builds when using the built-in pipeline.
[0.3.3] - 2023-09-28
Changed
- Revert changes that were mistakenly included in 0.3.2
[0.3.2] - 2023-09-27
Changed
- Use renamed
ar_skeleton_get_anchor_from_joint_transform_for_joint
API. This fixes an issue where builds are rejected on TestFlight for using deprecatedar_skeleton_get_skeleton_root_transform_for_joint
API.
[0.3.1] - 2023-09-13
Fixed
- Fixed linker errors in Xcode when building without visionOS loader enabled.
[0.3.0] - 2023-09-12
Added
- VisionOSSessionSubsystem now returns a structure including the native session pointer from the
nativePtr
property.
Changed
- Xcode beta 8 and visionOS beta 3 compatibility.
- Static libraries were rebuilt with Xcode Version 15.0 beta 8 (15A5229m).
Fixed
- Fixed an issue where plane detection would be disabled if meshing was not enabled.
[0.2.0] - 2023-08-21
Changed
- Xcode beta 5 and visionOS beta 2 compatibility
- Static libraries were rebuilt with Xcode Version 15.0 beta 2 (15A5161b).
Fixed
- Fixed issues with AR mesh alignment.
- Fixed issues with AR anchor position.
- Fixed issues with AR authorization and session startup.
- Fixed an issue where Plane alignment values would not match the values expected by AR Foundation.
[0.1.3] - 2023-07-19
This is the first release of Unity Package Apple visionOS XR Plugin.
Provides XR support for visionOS