我正在使用此函数来动画SCNNode的旋转:
let rotateNode = SCNAction.rotateTo(x: 0.0, y: CGFloat((headingAngle )), z: 0.0, duration: TimeInterval(1.1), usesShortestUnitArc: true)
node.runAction(rotateNode)
它适用于不同的方向,除非我需要将其旋转到用户(或相机)。
我的问题是如何指导SCNNode 转向用户 /相机以及如何计算 headingAngle 以便旋转SCNNode在移动时面对用户/摄像机。
我使用
执行移动 let impulseVector = SCNVector3(
x: 0.0 ,
y: 5.0,
z: 0.0
)
node.physicsBody?.applyForce(impulseVector, at: positionOnNodeToApplyForceTo, asImpulse: true) // propell
而且我知道headingAngle需要使用atan2
函数计算,但由于某种原因,我无法正确指导SCNNode 移向相机,也无法旋转并面向相机