SceneKit:SCNPhysicsBody 获取当前速度
SceneKit : SCNPhysicsBody get current velocity
如何获取 SCNPhyisicsBody 的当前速度?
速度属性总是return(0.0,0.0,0.0),我的SCNNode的prensetationNode的physicsBody也是nil
您可以通过
获得"current"速度physicsBody.velocity
但这仅在 "game loop" 回调(updateAtTime、didApplyAnimations、didSimulatePhysics、will/didRenderScene)中有效。
...在您的视图控制器中,您必须使用 SCNSceneRendererDelegate 协议,例如
class GameViewController: UIViewController,SCNSceneRendererDelegate{...
并在 viewDidLoad 方法中将 SCNView 委托设置为 scnView.delegate=自己
然后你可以实现例如
func renderer(renderer: SCNSceneRenderer, didRenderScene scene: SCNScene, atTime time: NSTimeInterval) {
let scnView = self.view as! SCNView
let scene = scnView.scene
let compass = scene?.rootNode.childNodeWithName("ObjectName", recursively: true)
print((compass?.physicsBody?.angularVelocity)!)
}
这适用于我的情况。 希望对您有所帮助!