场景工具包:如何在Swift 2.0中使SCNNode仅水平旋转

场景工具包:如何在Swift 2.0中使SCNNode仅水平旋转,swift,swift2,scenekit,Swift,Swift2,Scenekit,我设法创建了一棵树,程序应该只允许用户水平旋转这棵树 在查看文档之后,我使用以下代码 treeNode.physicsBody?.angularVelocityFactor = SCNVector3Make(0, 0, 1.0) 但这并没有起任何作用,我仍然能够从各个方向旋转这棵树 只有在水平方向上限制节点旋转的正确方法是什么?您真的要限制节点的旋转吗?还是要限制摄影机的旋转 如果是前者,你必须提供更多关于你身体物理和结构的细节。使用SCNPhysicshingjoint的方法似乎是可行的 l

我设法创建了一棵树,程序应该只允许用户水平旋转这棵树

在查看文档之后,我使用以下代码

treeNode.physicsBody?.angularVelocityFactor = SCNVector3Make(0, 0, 1.0)
但这并没有起任何作用,我仍然能够从各个方向旋转这棵树


只有在水平方向上限制节点旋转的正确方法是什么?

您真的要限制节点的旋转吗?还是要限制摄影机的旋转

如果是前者,你必须提供更多关于你身体物理和结构的细节。使用
SCNPhysicshingjoint
的方法似乎是可行的

let joint = SCNPhysicsHingeJoint.init(body: treeNode, 
                                      axis: SCNVector3Make(0, 0, 1.0), 
                                      anchor: SCNVector3Make(xpos, ypos, zpos))

但是,如果您只是试图控制摄像头,则应关闭
SCNView的
allowsCameraControl
。这只适用于快速和肮脏的测试。然后可以实现此处描述的技术()并在此处进行修改()。

很抱歉,对节点的旋转和节点摄影机的移动感到困惑。我想要一个特定的节点只在水平方向上旋转。我可以用相机来实现吗?不可以。但是
scnpysicashingjoint
可能就是你想要的。根据你在问题中所写的内容,我无法准确地理解你想要做什么。这并不限制节点的旋转,只限制物理引擎应用旋转的能力。树的旋转是如何改变的?你能在那一点加上限制吗?