2016-03-01 125 views
0

我已通過使用Interface Builder將3D文本拖動到場景來創建此SceneKit文本。SceneKit:更改SceneKit文本的樞軸/軸

它的建立這樣的:

enter image description here

軸線是在左下方。有沒有一種方法可以使用界面構建器將軸置於該文本上?

回答

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 
    ) 
} 
+0

這肯定比試驗和錯誤!謝謝。 – bpedit

+0

另一個答案是更新swift 4 –

1

更新迅速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 
) 
+0

接受的評論是在Swift 4中,但是,這是一個更簡單的方法。 –

+0

編輯:這裏的變化是「node.boundBox」而不是「node.getBoundBox」 –