一个简单的问题: SceneKit 中是否有类似 Spritekit containsPoint
方法的东西?
我猜命中测试可以工作,但是我认为那仅用于检查2D触摸命中哪个对象。
最佳答案
SCNGeometry
和SCNNode
均符合SCNBoundingVolume协议,该协议可访问边界框和边界球属性。
var boundingBox: (min: SCNVector3, max: SCNVector3)
对象边界框的最小和最大拐角点。
var boundingSphere: (center: SCNVector3, radius: Float)
对象边界球的中心点和半径。
如果目标是
SCNVector3
点,则可以使用几何知识轻松确定盒子或球体是否包含它。不知道上面是否回答了您的问题。如果要将2D转换为3D,反之亦然,或者要检查点是否在相机视锥范围内,则
SCNView
采用的SCNSceneRenderer中提供了一些有用的方法,您可以使用这些方法。