Correct, ARKit in visionOS does not support world map. See the ARKit in visionOS documentation here. It’s a subset of what’s available for ARKit for iOS.
Hi Dan
Thanks for the info.
Since the world map not supported in VisionOS, what is best solution to anchor something relative in real world space for cross session?
I saw in the VisionOS arkit document there are “WorldTrackingProvider” and " WorldAnchor", but can not find any related unity document in ARFundation or polyspatial, are these supported?
Nooooooooooo, for MR markerless world tracking is important, using marker make the experience feels like decades old tech.
Is there a plane to support world anchor in Unity for VisionOS?
Please send this feed back to Dev and consider it as a feature request. Thank you.
Guess meantime only option is make native app with this feature then.
It’s not supported natively, either. Note that the ARKit feature required to share the same anchors between devices, ARWorldMap, doesn’t support visionOS. I suggest providing feedback to Apple requesting this feature.
What I mean is World Anchor, this is for same device use cross sessions, when you close and reopen app, you can still relocate the anchors. In apple document WorldTrackingProvider and WorldAnchor are supported.
Hi @mtschoen I can not find any document about World Anchors under AnchorManager, as well as the code base. Only thing I can find is ARWorldMap, but it is not supported on VisionOS.
Can you please point out the document or the class name for World Anchor under AnchorManager
We don’t have a specific class for WorldAnchor. In this case, the anchors used by ARAnchor and ARAnchorManager are simply persistent across sessions. You don’t need to do any extra work to make them persist. Simply include an AnchorManager in your scene, and create objects with an ARAnchor component on them to add anchors to the system.
You can check out the package samples in com.unity.xr.visionos to see an example for how to use AnchorManager. Once you have added an anchor and it is successfully tracked, you can store the trackableId somewhere to associate that ID with the persistent anchor, and attach whatever content/objects you would like to show up in that location. On subsequent launches of the app, the AnchorManager will load any known/recognized anchors, and their trackableId will match what was given when the anchor was first created.
That’s useful info. Can I ask if we can count on the uniqueness of the trackableId? The docs seem to be saying it’s only persistent within a session, but not across sessions. Seems a bit confusing.
I agree it’s a little confusing. From the docs, I wouldn’t have expected anchors to persist between sessions at all, but in my experience, they do. Again, in my experience, the trackable IDs appear to be consistent between runs (when they are recalled from a previous session) but I haven’t actually built any tests or code that relies on this. This assumption is based on just glancing at the string values for trackable IDs and my human brain saying “yeah looks like the same IDs!”
We are just passing the trackable IDs through from the platform, so ultimately this is a question for Apple.
We have deep linking support for apps using RealityKit and Hybrid app modes, but it is unfortunately not supported when using the Metal app mode, or in a Hybrid app without any windows or volumes open. This is because the onOpenUrl callback needs to be attached to a View. In a Metal/VR app, there are no Views. If you add a window or volume, you can attach a deep link handler, but it must be visible to the user (you’ll at least see the capsule and close button for the window).
This is useful to know, but doesn’t answer the question - is it possible to create an anchor in one app, deeplink open another app and have it load the same anchor, so the content in the second app is in the same location with the same rotation as in the first app?
I see. I don’t know for sure, but I wouldn’t expect that to work. AFAIK the ID for an anchor is specific to one app. You could try just hard-coding a known ID to see if it’ll work without the deep link. Otherwise, it would be a question/request for Apple.