ios - 如何更改 SceneKit 中枢轴点的位置

标签 ios swift scenekit

我正在尝试移动枢轴点到对象的中心,以便它围绕其中心旋转。我该怎么做?

enter image description here

我在 Xcode 编辑器中看不到执行此操作的选项。我尝试以编程方式更改枢轴点:

    // create a new scene
    let scene = SCNScene(named: "art.scnassets/Heart.scn")!

    // change pivot point
    scene.rootNode.pivot = SCNMatrix4MakeTranslation(0.5, 0.5, 0.5)

但它也不起作用,对象仍然围绕其旧的枢轴点旋转。

最佳答案

心脏(可能)不是场景的根节点。它是根节点的子节点(默认相机和任何灯光也是如此)。所以你可以试试

// (use the Scene Editor to figure out what the node name really is)
if let heart = scene.rootNode.childNodeWithName("HEART", recursively: true) {
    heart.pivot = SCNMatrix4MakeTranslation(0.5, 0.5, 0.5)
}

至于场景编辑器……你确定你在操纵心脏,而不是整个场景吗?我还看到一些 SO 和 Devforum 流量表明(但没有证明)在场景编辑器中设置的某些参数在运行时不被接受。

关于ios - 如何更改 SceneKit 中枢轴点的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35673305/

相关文章:

swift - 点击搜索栏时,应用程序崩溃

sprite-kit - SKRenderer——神秘类

ios - 在物理模拟过程中节点的位置看起来恒定

ios - 如何让 block 立即并延迟一段时间后执行代码

ios - UICollectionViewCell 在滚动时缩放单元格大小

ios - MKPolyline 仅在 map 移动时显示

ios - 在SpriteKit(或SceneKit)中更新几何

ios - OSStatus 错误 :[-34018] Internal error when a required entitlement isn't present error on device

arrays - 在 Swift 中解开稀疏数组

ios - Swift 2 - 发送 POST 请求失败 - (lldb)