Release Notes v3.0
ARDK 3.0 has been re-architected to make it far easier to work alongside Unity's XR and AR systems.
ARDK 2.X required users to either use ARDK OR Unity's AR/XR systems. With 3.0, users can seamlessly mix and match Niantic’s Unique AR features with Unity’s AR Foundation and XR subsystems.
This means any project set up to use AR Foundation can enable Lightship in the XR Settings and ARDK will override existing systems such Depth, Occlusion, and Meshing, and add new ones for Niantic’s unique features.
It also means that you can follow existing documentation and tutorials on AR Foundation for basic AR concepts and then extend them to make use of Niantic’s advanced AR features.
You can also use other third party APIs that also leverage ARFoundation.
We have updated Shared AR to support VPS colocalization, making it easy to drop into a multiplayer game at any VPS location.
We have streamlined VPS Development workflows to make it easier than ever to create geospatial experiences.
Windows development is now available as an experimental feature.
- Recording is not possible in Windows. Playback is available but requires a recording from another source.
Feel free to give feedback in our forums.
Both the plugin and the samples can now be found on Github.
Features/Fixes
- New ARSemanticSegmentationManager.FrameReceived event, which is invoked when the semantic subsystem outputs a frame with new semantic information.
Breaking Changes
These are changes from Beta 4, not from ARDK 2.5
- ARLocationManager will no longer de-activate ARLocation’s gameObject when tracking is lost. Developers can manually de-activate the gameObjects in the ARlocationManager.locationTrackingStateChanged event if desired. This is shown in the PersistentAR and VPSLocalization samples.
- In ARSemanticSegmentationManager and XRSemanticsSubsystem, we have changed from using “CPU” to “Cpu” on function names. For example: TryAcquireSemanticChannelCPUBuffer -> TryAcquireSemanticChannelCpuBuffer.
- Also in ARSemanticSegmentationManager, IsDataAvailable is now IsMetadataAvailable and DataInitialized is now MetadataInitialized.
- In IModelPreloader, CurrentProgress now returns a PreloaderStatusCode to convey HTTP errors, and the download progress value is now an out parameter instead of the return value.
Known Issues
Meshing features are not supported on 32-bit Android devices and will cause a crash.
Building projects for iOS with ARDK is not supported on Windows.
TrySetChannelConfidenceThresholds
does not take effect.VPS will not work in landscape orientation with private scans that were created before June, 2023. For private scans created before June, please re-scan the location and use the newer scan in order to enable VPS in landscape mode. This only impacts private scans; public locations do not need to be re-scanned.
Visual Scripting 1.9.0 (installed by default in Unity 2021.3.30f1 and 2022.3.10f1) can cause the following error:
Library/Packagecache/com.unity.xr.arfoundation@5.1.0/Runtime/VisualScripting/Units/Events/EventUnits/SessionStateChangedEventUnit.cs(50,30):
error CS0506:
'SessionStateChangedEventUnit.StopListening(GraphStack)':
cannot override inherited member 'EventUnit<ARSessionState>.StopListening(GraphStack)' because it is not marked virtual, abstract, or overrideIf you see this error, upgrade Visual Scripting in the Package Manager to 1.9.1 or higher.
When activating Lightship SDK for Android or iOS in Unity 2022.3.10f1 and above, you could get the following error message in the Unity console:
XR Plug-in Management error. Failure reason: Unable to assign com.nianticlabs.lightship for build target Android (or iOS)
This error message is benign, and the SDK still works as expected for those platforms.
XR Plug-in Management Project Validation for Android displays two errors and two
Fix
buttons for setting the Graphics API to OpenGLES3; one from Google ARCore and one from Niantic Lightship SDK. The one in Google ARCore XR Plugin 5.1.0 does not work properly, but you can use the Lightship one to fix both.Multi-Threaded Rendering causes Depth and Occlusion to flicker when minimizing and re-opening the app on lidar iPhones. We recommend disabling Multi-Threaded Rendering on iOS platforms while we work with Unity on a resolution.
Calling
TryConvert
on anXRCpuImage
obtained from theXROcclusionSubsystem
(on Android devices and iOS devices where LiDAR is unavailable or disabled) orXRSemanticSegmentationSubsystem
(all devices) will result in invalid data being copied to the destination buffer.