在3d空间中测试UIGestureRecogniser

时间:2014-09-29 09:13:25

标签: ios 3d uigesturerecognizer scenekit

我对iOS的SceneKit来说相当新,并且在3D场景中遇到了与用户交互相关的两难问题:

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

您在hitTest:options:上拨打SCNView时走在正确的轨道上。正如您可能已经看到它导致数组SCNHitTestResults

命中测试结果可以告诉你很多关于命中的事情,其中​​一个是命中的节点。您要找的是localCoordinatesworldCoordinates

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

world 坐标相对于根节点。