一个简单的问题: SceneKit 中是否有类似 Spritekit containsPoint方法的东西?

我猜命中测试可以工作,但是我认为那仅用于检查2D触摸命中哪个对象。

最佳答案

SCNGeometrySCNNode均符合SCNBoundingVolume协议,该协议可访问边界框和边界球属性。

var boundingBox: (min: SCNVector3, max: SCNVector3)

对象边界框的最小和最大拐角点。
var boundingSphere: (center: SCNVector3, radius: Float)

对象边界球的中心点和半径。

如果目标是SCNVector3点,则可以使用几何知识轻松确定盒子或球体是否包含它。

不知道上面是否回答了您的问题。如果要将2D转换为3D,反之亦然,或者要检查点是否在相机视锥范围内,则SCNView采用的SCNSceneRenderer中提供了一些有用的方法,您可以使用这些方法。

10-06 00:40