我有一个 SceneKit 项目,其中我目前有 2 个对象,一个是简单平面的地面和一个金字塔。我想将金字塔节点的高度设置为类似于以下 sudo 代码:
pyr.position = SCNVector3Make(0, ground.position.y+pyr.size.height, 0)
有没有办法以像素或点为单位获取节点的高度?
注意
这就是我创建 pyr
和 ground
节点的方式:
let pyr = scene.rootNode.childNodeWithName("pyramid", recursively: true)!
let ground = scene.rootNode.childNodeWithName("ground", recursively: true)!
你试过这个吗?
从文档中:
SCNBoundingVolume 协议定义了一个接口,用于描述在空间中占据体积的对象,由 SCNNode 和 SCNGeometry 类采用。它的方法测量对象在对象的局部坐标空间中的位置和大小,表示为框或球体。
获取对象边界框的最小角点和最大角点。
func getBoundingBoxMin(_ min: UnsafeMutablePointer<SCNVector3>,
max max: UnsafeMutablePointer<SCNVector3>) -> Bool
最小输出时,边界框的最小坐标。
最大输出时,边界框的最大坐标。
(max.y - min.y(将是高度。