如何获得SCNPhyisicsBody的当前速度?
velocity属性总是返回(0.0,0.0,0.0),而我的SCNNode的prensetationNode的physicsBody也是nil。
答案 0 :(得分:5)
你可以得到"当前"速度
physicsBody.velocity
但这仅在"游戏循环中有效#34;回调(updateAtTime,didApplyAnimations,didSimulatePhysics,will / didRenderScene)。
答案 1 :(得分:1)
...在您的视图控制器中,您必须使用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)!)
}
这适用于我的情况。 希望它有所帮助!