SCNNode ApplyTorque根据力量

时间:2018-11-28 15:25:37

标签: swift game-physics scnnode

假设X-Axisup-downY-Axisleft-rightZ-Axisdepth。 (这似乎很奇怪,但这是我在ARKit中的经验。它只是交换“ normal” X-AxisY-Axis

我在SCNNode处有一个名为node1的{​​{1}}。它是矩形的,具有纵向布局。

当我调用方法(0, 0, 0)时,下面的代码允许节点跟随电话。

lookNode1()

但是,我有一个问题,相对于手机的Z轴而不是确切的Z轴不正确。我的问题是,想象一下//Method to make node follow the camera when I call it. @objc func lookNode1() { if(self.node1 != nil) { //Look at the camera self.node1.look(at: self.sceneView.pointOfView!.position) //I have to flip it 90 degrees because the node is created in a fancy way that I have to update for. let startingOrientation = GLKQuaternion(self.node1.orientation) let node1LookingDirection = self.node1.parentUp let node1LookingDirectionInTargetNodesReference = self.node1.convertVector(node1LookingDirection, from: self.sceneView.pointOfView?.parent!) let rotationAxis = GLKVector3(node1LookingDirectionInTargetNodesReference) let quaternion = GLKQuaternion(angle: Float(Double.pi/2), axis: rotationAxis) self.node1.orientation = SCNQuaternion((startingOrientation * quaternion).normalized()) } } extension SCNNode { /// The local unit Y axis (0, 1, 0) in parent space. var parentUp: SCNVector3 { let transform = self.transform return SCNVector3(transform.m21, transform.m22, transform.m23) } } 周围的一个球体,如何在矩形顶部始终朝向北极的位置放置它?

我的node从不动,它只是旋转以跟随相机。但是,我需要相对于相机的Z轴始终处于纵向模式。不管相机是横向还是横向。

Rectangle Celestial Circle

工作量:

我当时正在考虑在A上施加一些引力,使其始终在顶部,即指向围绕节点的Sphere顶部。但是,1)不确定如何应用,2)不确定是否可以使用。

我知道我们有node1,我可以做func applyTorque(_ torque: SCNVector4, asImpulse impulse: Bool),但是,我不确定someRotation是什么。我如何将其与来自北极self.node1.physicsBody.applyTorque(SCNVector4(0, 0, 1, someRotation), asImpluse: true))的重力场一起应用(因为X上下)?即上面的图片。

0 个答案:

没有答案