ARDK 0.10.0 Release Notes 2021-08-05
What’s New
[Basic AR] Add a manager for image detection, as well as update the example scene to use it.
[Basic AR] The
ARPlaneManager
can be configured to not spawn any game objects, by setting the plane prefab tonull
.[Context Awareness] Added support for models with up to 32 semantic classes.
[Developer Tools]
Virtual Studio
’s Remote mode now supports adding and removingARAnchors
.[Developer Platform] ARDK 0.10.0 has been tested against iOS 15 beta and Android 12 beta with all tests passing. We do not expect any trouble, but please continue report any unexpected behavior
Known Issues
[Basic AR] Disposing an
ARSession
after adding an image anchor causes crash[Basic AR] Image anchors detected on Android devices will initially return a position of
(0, 0, 0)
[Basic AR] Image anchors detected on Android devices are updated each frame without a change to the underlying data
[Basic AR] Observed possibility for
ARSessionManager
to subscribe toCapabilityChecker.Success
twice[Multiplayer] Physics not simulating for unowned network objects
[Contextual Awareness] Depth not correctly enabling when
ARDepthManager
is enabled after theARSession
has Ran[Developer Tools]
MockARNetworking
pose and state logic doesn’t exactly match native (will go directly fromwaitingForLocalization
tostable
)[Developer Tools] Remote Depth buffer is not oriented to screen viewport
[Developer Tools] Observed memory leak for
ARFrame
messages received after the RemoteEditorARSession is destroyed[Developer Platform] The Redmi Note 9 Pro device is currently unusable
[Developer Platform] Android Manifest may fail to merge in Unity if Android target API is set higher than 29. The solution is to use a newer version of gradle to build, see the Android section in the System Requirements page
[Developer Platform][Examples] In the
LowLevelNetworking
scene, sent messages are not displayed on the sender’s device[Developer Platform][Examples] In the
LowLevelNetworking
scene, server errors are not completely handled which could lead to some irrecoverable states[Developer Platform][RecordingExamples] In the
Capture
scene, the camera view appears without use of Init and Run buttons.
Improvements
[Multiplayer] Improved reporting of multiplayer errors. It is now possible to differentiate types of connectivity issues to simplify root cause analysis.
[Contextual Awareness] Depth Point Cloud is more accurate
[Contextual Awareness] Context Awareness Features can be preloaded and then used when there is no internet connection
[Developer Tools] Combined
Virtual Studio
(Mock) andRemoteConnection
windows into a single window, where you can now directly control mock players from.[Developer Platform] General improvements to the documentation in various areas
[Developer Platform] Added a search bar to documentation page allowing search within ARDK API
Bug Fixes
[Basic AR] Add a documentation blurb to the Image Detection page about
ARImageDetectionManager
.[Multiplayer] Fixed bug where
IARSession.MapsAdded
andMapsUpdated
events weren’t being surfaced.[Multiplayer] Changed Mock/Remote
ARNetworking
to be the same as on-deviceARNetworking
, where disposal ofARNetworking
,ARSession
, andMultipeerNetworking
objects are all separate.[Contextual Awareness] Fixed issue where mesh glitches appear in the Garden Chunk Meshing Tutorial
[Contextual Awareness] Fixed issue in which depth frame latched in the screen when moving very slowly
[Contextual Awareness] Fixed erroneous button labeling in GameBoard example
[Contextual Awareness] Fixes bug where awareness buffer was misaligned in
LandscapeLeft
orientation[Developer Tools]
MockDetectables
fixed to be discovered right away if_timeToDiscovery
is set to0
.MockMaps
fixed to be only discovered once perARSession
run (this is consistent with on-device behaviour).[Developer Tools]
ARDKGlobalVersion
methods fixed to return valid values in Unity Editor[Developer Platform] Fixed bug where sometimes
Virtual Studio
window would not detect joined session metadata.
Breaking Changes
[Basic AR] Fix
UnityLifecycleDriver.Initialized
incorrectly being true when instantiating a prefab.[Multiplayer] Renamed
IMultipeerNetworking.Disconnecting
toIMultipeerNetworking.Disconnected
to match ARDK event naming convention.[Contextual Awareness] Remove
_occlusionEnabledOnStart
fromDepthMeshOcclusionManager
, and instead correctly initialize theOcclusionEffect
with theAreFeaturesEnabled
state.[Developer Tools] Removed
DisableOnStartInNonEditorBuilds
component (stub class, remnant of very old version of ARDK).[Developer Tools] Changed
ARInfoSource
to be namedRuntimeEnvironment
, since the enum value is applicable for networking in addition to AR.[Developer Tools]
ARDKGlobalVersion
method names capitalized to match ARDK code style.
Upgrade Guide
Context Awareness Working Offline
If you want contextual awareness features to work while the phone is offline, you can use either the
IFeaturePreloader
or FeaturePreloadManager
to load Feature.ContextAwareness
while the phone
has internet access. Then depth, semantic segmentation, and meshing will work even if the device is
offline the first time those features are actually used.
DepthMeshOcclusionManager
If you were using the _occlusionEnabledOnStart
property to prevent depth from starting
immediately, you’ll need to either:
Disable the
DepthMeshOcclusionManager
component, and enable it when you want depth, orSet
UnityLifecycleDriver._manageUsingUnityLifecycle
property to false and callEnableFeatures
on theDepthMeshOcclusionManager
when you want depth.
ARInfoSource
If you were manually specifying whether to use the native, mock, or remote implementation of ARDK by
providing an ARInfoSource
, you’ll need to change it to use the equivalent RuntimeEnvironment
value.
ARDKGlobalVersion
If you were checking the ARDK version using this class, the method’s name has been changed to be capitalized.
IMultipeerNetworking
If you were listening to disconnect events, you need to subscribe to the Disconnected
event
instead of Disconnecting
.
Released: August 05, 2021