0

我通过使用 Interface Builder 将 3D 文本拖到场景中创建了这个 SceneKit 文本。

它是这样创建的:

在此处输入图像描述

轴位于左下方。有没有办法使用界面生成器使轴在该文本上居中?

4

2 回答 2

4

不在场景编辑器中。

在代码中,您可以通过检查边界框来更改节点的轴心以匹配其几何图形的中心点。例如:

func centerPivot(for node: SCNNode) {
    var min = SCNVector3Zero
    var max = SCNVector3Zero
    node.getBoundingBoxMin(&min, max: &max)
    node.pivot = SCNMatrix4MakeTranslation(
        min.x + (max.x - min.x)/2,
        min.y + (max.y - min.y)/2,
        min.z + (max.z - min.z)/2
    )
}
于 2016-03-01T17:42:26.293 回答
1

Swift 4 的更新

let min = node.boundingBox.min
let max = node.boundingBox.max

node.pivot = SCNMatrix4MakeTranslation(
    min.x + (max.x - min.x)/2,
    min.y + (max.y - min.y)/2,
    min.z + (max.z - min.z)/2
)
于 2017-11-02T23:54:43.723 回答