SceneKit - 获取节点的高度

Lin*_*rth 2 xcode nodes ios scenekit swift

我有一个 SceneKit 项目,其中我目前有 2 个对象,一个是简单平面的地面和一个金字塔。我想将金字塔节点的高度设置为类似于以下 sudo 代码:

pyr.position = SCNVector3Make(0, ground.position.y+pyr.size.height, 0)
Run Code Online (Sandbox Code Playgroud)

有没有办法以像素或点为单位获取节点的高度?

笔记

这就是我创建pyr&ground节点的方式:

let pyr = scene.rootNode.childNodeWithName("pyramid", recursively: true)!
let ground = scene.rootNode.childNodeWithName("ground", recursively: true)!
Run Code Online (Sandbox Code Playgroud)

sam*_*bro 5

你试过这个吗?

从文档:

所述SCNBoundingVolume协议定义用于说明在占据空间中的体积,由SCNNode和SCNGeometry类采用的对象的接口。它的方法测量对象在对象局部坐标空间中的位置和大小,表示为一个盒子或一个球体。

获取对象边界框的最小和最大角点。

    func getBoundingBoxMin(_ min: UnsafeMutablePointer<SCNVector3>,
               max max: UnsafeMutablePointer<SCNVector3>) -> Bool
Run Code Online (Sandbox Code Playgroud)

min
输出时,边界框的最小坐标。

max
输出时,边界框的最大坐标。

(max.y - min.y) 将是高度。