【问题标题】:Hit-testing a UIGestureRecogniser in 3d space在 3d 空间中对 UIGestureRecogniser 进行命中测试
【发布时间】:2014-09-29 09:13:24
【问题描述】:

我对 iOS 的 SceneKit 相当陌生,并且在 3d 场景中的用户交互方面遇到了难题:

我在 SCNView 中有一组 SCNNode 立方体,并且希望能够精确定位用户触摸给定立方体网格的位置,作为 3d 坐标(以便稍后操作根据触摸向量的场景)。目前,我一直在使用UIGestureRecognizer 来实现基本的命中测试,但这似乎仅限于返回二维点。

当想要对整个节点本身进行命中测试时,这不是问题,因为这可以通过 SCNView 中的 UIGestureRecognizer 的命中测试方法来实现。但是,对于如何根据坐标(即SCNVector3)精确定位触摸在节点上的位置,是否有人有任何建议?

谢谢!

【问题讨论】:

    标签: ios 3d uigesturerecognizer scenekit


    【解决方案1】:

    您在SCNView 上致电hitTest:options: 是正确的。正如您可能已经看到的那样,它会生成SCNHitTestResults 的数组。

    命中测试结果可以告诉你很多关于命中的信息,其中之一就是命中了哪个节点。您正在寻找的是localCoordinatesworldCoordinates

    local 坐标是相对于被命中的节点的。由于您在问“如何精确定位触摸在节点上的位置”,这可能就是您正在寻找的那个。

    世界坐标是相对于根节点的。

    【讨论】:

    • 完美!非常感谢这个;这正是我正在寻找的:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 2011-10-16
    • 1970-01-01
    相关资源
    最近更新 更多