在 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之间画线时观察滞后