在 ARKit 中检测对 SCNNode 不同位置的触摸

Posted

技术标签:

【中文标题】在 ARKit 中检测对 SCNNode 不同位置的触摸【英文标题】:Detect touches on different positions of a SCNNode in ARKit 【发布时间】:2018-06-22 18:02:25 【问题描述】:

我有一个在 ARKit 中使用的 .dae 格式的 3D 角色。我需要在角色的不同位置进行不同的触摸操作。例如:菜单选项。我使用场景工具包和 scnnode 来创建 ar。我刚开始学习AR。有人可以帮我完成这项工作吗?

【问题讨论】:

你应该寻找 hittest @AlokSubedi:谢谢。正如我所说,我对此完全陌生,所以可以更具体。假设我的角色有头有尾。我怎么知道点击了哪一个?我知道通过使用命中测试,我可以检测我的角色是否被点击。但是因为我的角色是一个单一的爸爸文件;我将如何区分触摸? 我无法在接下来的两天内对其进行测试,但是 hittest 的 localCoordinates 可以为您提供节点中的录音坐标 另一种选择是从 hittest 结果中获取纹理坐标,使用这些坐标从纹理中获取颜色。根据该信息,您可能能够区分头发和面部肤色等。即使它是单个 dae 文件,该对象也可能包含多个元素。然后可以使用几何索引。另一个可行的选项,取决于面数,是使用来自 hittest 的面索引值。您必须先将人脸映射到列表中的不同区域。 【参考方案1】:

我通过使用命中测试解决了这个问题。我的模型中的不同部分有不同的网格。因此,只需从命中测试中调用 node.name 即可让我选择哪个节点。 谢谢大家。

【讨论】:

以上是关于在 ARKit 中检测对 SCNNode 不同位置的触摸的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ARKit 检测触摸并显示新的 SCNPlane?

ARKIT:在一个SCNNode与另一个SCNNode之间画线时观察滞后

如何提高 ARKit 测量两个 SCNNode 之间距离的准确性?

未经许可将 SCNNode 向北旋转以进行位置跟踪

iOS增强现实(ARKit)简单介绍

ARKit – Spatial Audio 几乎不会随距离改变音量