我试图使用SceneKit在这个动画中实现木杆的效果:

https://www.instagram.com/p/BkzqpHHgKb1/

杆可以围绕它的中心旋转,然后快速回到原来的位置 .

我有一个细长的Scenekit SCNBox代表杆 . 我在杆的物理体上使用SCNPhysicsHingeJoint,使其能够围绕它的中心旋转:

let joint = SCNPhysicsHingeJoint(body: (rod.physicsBody!), axis:SCNVector3(x: 0, y: 0, z: 1) , anchor: SCNVector3(x: 0.0, y: 0.0, z: 0))
 scnView.scene?.physicsWorld.addBehavior(joint)

有没有办法通过操纵物理属性,如恢复原状,角度阻尼等,使杆 spring 回到原始位置?我可以用SCNPhysicsField.spring()实现这个目的吗?

或者,我只是手动将杆动画回原来的位置?

我在SceneKit编辑器中设置了很多,所以没有很多代码,但如果对这个问题有用,我可以重写为代码 .