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

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

【问题讨论】:

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

标签: ios swift scenekit arkit collada


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-07-28
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多