我目前正在关注David Roonqvist的3D图形与SceneKit书。
第5章讨论命中测试,没有实现它的问题,但仅涉及他对鼠标事件的测试。
现在,我知道我的相机的方向总是会与某个几何体相交。
我需要获取相机方向和几何体之间相交点的纹理坐标。
有关如何去做的任何指示?我一直在寻找,但没有取得多大成功。
感谢任何帮助。
答案 0 :(得分:2)
我还没试过这个但是......
除其他事项外, SCNHitTestResult
会返回textureCoordinatesWithMappingChannel(_:)
。文档引用了一个例子,在游戏角色被激光击中后,将焦痕添加到游戏角色的纹理中。
似乎是SCNNode
'
hitTestWithSegmentFromPoint(_ pointA: SCNVector3,
toPoint pointB: SCNVector3,
options options: [String : AnyObject]?) -> [SCNHitTestResult]
无论相机的方向如何,都会为您提供相机和几何体之间所需的点击。如果摄像机和目标使用不同的本地节点坐标系,则必须使用convertPosition(_:from:Node:)
或类似功能进行一些转换。