为什么将物体当作锚的孩子?

时间:2019-04-10 02:58:56

标签: unity3d augmented-reality arcore

我测试了ARCore的HelloAR示例。 通过触摸设备的屏幕创建对象时,将执行CreateAnchor,然后将对象移至Anchor的子级。 您有什么理由要孩子吗?

2 个答案:

答案 0 :(得分:3)

由于将3D对象作为锚的子对象,因此可以将该对象附加到Trackable。 本质上,ARCore无法跟踪您的3D模型,但是当您锚定它们时,会将3D模型附加到ARCore可以跟踪的对象上。这样您的3D模型也可以被跟踪。

这方面的另一点是当地位置的使用。因为每次运行使用ARCore的应用程序时,您都会注意到不同的坐标系。但是,通过使用锚点并使对象成为那些锚点的子代,您可以利用本地位置。例如,在“增强图像”示例中,无论您的图像坐标系框架如何,始终会出现在2D图像的角上。这是通过锚定和局部位置属性来实现的。

答案 1 :(得分:1)

因为它是常规的3D场景层次结构。它的构建方式与3D动画软件(例如Autodesk Maya)相同。节点的层次结构简化了动画制作过程中的转换(translaterotatescale),并简化了在世界空间中的放置。您的AR应用中的所有3D对象都位于“世界坐标”中。

例如:您的3D场景具有根节点Parent Node)。任何几何,相机,灯光或ARAnchors必须具有Child Nodes才能连接到Root Node。而且,如果您想在场景中放置Renderable,则必须将其Child Node连接到ARAnchor的Parent Node

enter image description here

  

另一个例子:想象一个家庭的成员-祖父父亲儿子。父亲同时是祖父的孩子(他的节点被视为Child Node),父亲是儿子的父母(同时他的节点被视为Parent Node)。

希望这会有所帮助。