在ARKit中,我可以使用hitTest:tapPoint types:ARHitTestResultTypeExistingPlaneUsingExtent
如果你想在上面放置物品,这是有效的。作为types:ARHitTestResultTypeExistingPlaneUsingExtent
的表格仅检测检测到的平面范围内的命中。
如果你想把物品放在地板上,那就不那么有用了,因为你需要走动才能让ARKit在你的地板上放置(或扩展)很多飞机。
ARHitTestResultTypeExistingPlane
解决了这个问题,因为您只需要检测到地板上的一小块地方,并且可以在任何地方放置物品。然而问题是,一旦ARKit检测到另一个与地板不对应的平面(例如桌子),每个物体都将被放置在更高的表面上。
是否可以控制哪个飞机用于最热门?
答案 0 :(得分:2)
命中测试方法返回多个结果,按照距相机的距离排序。如果你在无限范围内对现有飞机进行测试,你应该在你描述的情况下看到至少两个结果:首先是桌子/桌子/等,然后是地板。
如果你特别想要发言,有几种方法可以找到它:
如果您已经知道会话中较早的ARPlaneAnchor
,请搜索anchor
匹配的点击测试结果数组。
假设地板始终是距离摄像机最远的平面(阵列中的最后一个)。在大多数情况下可能是一个安全的假设,但要注意阳台,genkan等。