菜鸟教程小白 发表于 2022-12-13 02:34:20

ios - ARKit 仅检测地板以放置物体


                                            <p><p>在 ARKit 中我可以使用 <code>hitTest:tapPoint types:ARHitTestResultTypeExistingPlaneUsingExtent</code></p>

<p>如果你想在上面放置对象,这很有效。 <code>types:ARHitTestResultTypeExistingPlaneUsingExtent</code> 的表格将仅检测检测到的平面范围内的命中。</p>

<p>如果你想在地板上放置物体,它就没那么有用了,因为你需要四处走动,直到 ARKit 在你的地板上放置(或扩展)很多平面。</p>

<p><code>ARHitTestResultTypeExistingPlane</code> 解决了这个问题,因为您只需要检测到一小块地板,就可以在任何地方放置物体。然而,问题是一旦 ARKit 检测到另一个与地板不对应的平面(例如 table ),每个物体都会被放置在更高的表面上。</p>

<p>是否可以控制哪些飞机用于 HitTest ?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p> HitTest 方法返回多个结果,按与相机的距离排序。如果您对现有平面进行无限范围的测试,您应该在您描述的情况下看到至少两个结果:首先是 table / table /等,然后是地板。 </p>

<p>如果您特别想要地板,有几种方法可以找到它:</p>

<ul>
<li><p>如果您已经知道哪个 <code>ARPlaneAnchor</code> 是您之前 session 中的地板,请在 HitTest 结果数组中搜索其 <a href="https://developer.apple.com/documentation/arkit/arhittestresult/2867905-anchor" rel="noreferrer noopener nofollow"><code>anchor</code></a> 的结果。火柴。 </p></li>
<li><p>假设地板始终是离相机最远的平面(阵列中的最后一个)。在大多数情况下可能是一个安全的假设,但要注意阳台、玄关等。</p></li>
</ul></p>
                                   
                                                <p style="font-size: 20px;">关于ios - ARKit 仅检测地板以放置物体,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/46084692/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/46084692/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - ARKit 仅检测地板以放置物体