iOS 11 SceneKit hitTest:选项:失败

时间:2017-09-21 20:44:33

标签: scenekit ios11

我在使用hitTest时面临困境:选项:在iOS 11的SceneKit中。

在maping应用程序中,我有一个terrain节点。使用hitTest:选项:我能够长时间在屏幕上触摸点上的地形点。在iOS 11上发布的二进制文件以及iOS 10模拟器的Xcode 9编译二进制文件仍然可以正常工作。

但iOS 11 SDK上的iOS 11二进制文件提供了完整的结果。从hitTest返回数组:options:可能不包含任何结果或太多。而且,大多数情况下,结果都没有效果。以下是用于说明这一点的图像。所有图像都来自没有隐藏节点的场景。

编辑:我今天使用hitTestWithSegmentFromPoint:toPoint:options进行了测试:并得到了错误的结果。

首先使用工作模拟器。

one hit ok它显示地形上的正常命中。击球点用红球表示。由于它的中心位于地形上,所以它在地形中是半插入的。

3 hits ok 3 hits ok yaw 这两个图像显示了一个" ray"越过地形3次。我们在地形上正确放置了3个点击。第二个图像改变了视角以显示3点。

现在失败的iOS 11情况:

one hit ko在这张照片上,我们得到了一次打击,但它是#34;无处可见"在两座山之间,而不是在地形上。

最后两张照片显示其他尝试有4次和16次点击,所有"在蓝色"与地形无关。

有时候击中了#34;远离"经过地形,有时它们位于相机和地形之间。

4 hits ko 16 hits ko

1 个答案:

答案 0 :(得分:1)

我在iOS 11上遇到了同样的问题。我的解决方案:

var hitTestOptions = [SCNHitTestOption.sortResults : NSNumber(value: true),
                      SCNHitTestOption.boundingBoxOnly : NSNumber(value: true)]

if #available(iOS 11.0, *) {
    hitTestOptions[SCNHitTestOption.searchMode] = SCNHitTestSearchMode.all.rawValue as NSNumber
}