SceneKit,'点击'在相机方向和几何之间进行测试

时间:2015-11-02 09:34:47

标签: scenekit hittest scnnode

我目前正在关注David Roonqvist的3D图形与SceneKit书。

第5章讨论命中测试,没有实现它的问题,但仅涉及他对鼠标事件的测试。

现在,我知道我的相机的方向总是会与某个几何体相交。

我需要获取相机方向和几何体之间相交点的纹理坐标。

有关如何去做的任何指示?我一直在寻找,但没有取得多大成功。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我还没试过这个但是......

除其他事项外,

SCNHitTestResult会返回textureCoordinatesWithMappingChannel(_:)。文档引用了一个例子,在游戏角色被激光击中后,将焦痕添加到游戏角色的纹理中。

似乎是SCNNode'

hitTestWithSegmentFromPoint(_ pointA: SCNVector3,
                     toPoint pointB: SCNVector3,
                     options options: [String : AnyObject]?) -> [SCNHitTestResult]
无论相机的方向如何,

都会为您提供相机和几何体之间所需的点击。如果摄像机和目标使用不同的本地节点坐标系,则必须使用convertPosition(_:from:Node:)或类似功能进行一些转换。