I'm currently doing some experiments with RealityKit.
I've been looking at some sample code, and I'm a bit confused about the differences between ARAnchor
and AnchorEntity
, and when to use one over the other.
So far I know that:
- Both are anchors that describes a position in the real world.
AnchorEntity
can also have otherEntity
's as children, so you can add model objects directly to the anchor. You can't do this withARAnchor
, you have to add model objects "manually" to therootNode
, and use the position of the anchor the place it correctly.- In the documentation it says that ARKit uses the added
ARAnchor
to optimize the tracking in the area around the anchor. The documentation forAnchorEntity
does not specify this.
Right now I add a AnchorEntity
to the session as a "root node", since it's simpler to use, so that I can simply add models as children directly to this anchor. But then I also add a ARAnchor
, located at the same position, to the scene's anchors, to enhance tracking around this point. Is this nececary?
ARAnchor
class in ARKit andAnchorEntity
class in RealityKit were both made for the same divine purpose – to tether a 3D content to your real-world objects.But these two classes slightly differ in hierarchical construction found in scenes. Here's an image depicting how it looks like:
Apple Developer documentation says:
Also the documentation says about AnchorEntity the following :
AnchorEntity
has three building blocks in it:Look at this picture to find out more about entities. All entities have
Synchronization component
that helps organise collaborative sessions.And
AnchorEntity
has seven specific type for different purposes:You can freely use both classes (ARAnchor and AnchorEntity) in your AR app.