SceneKit相机动画移动和减速

4
我正在使用以下代码沿着z轴移动SCNScene场景的相机节点:

我正在使用以下代码沿着z轴移动SCNScene场景的相机节点:

let moveTo = SCNAction.moveTo(SCNVector3(x:0,y:0,z:-40), duration: 40); 
cameraNode.runAction(moveTo)

我希望能够在我的游戏中接收到事件(例如GameOver事件)并平稳减速相机直至停止。

如何使相机平滑地停止移动?


这是一篇很老的帖子,但这个评论可能会对某些人有所帮助。我不确定它是否适用于这种情况,但你可以这样做:gameView.defaultCameraController.inertiaFriction = 0.01 - George
2个回答

1

SCNAction有一个"timingMode"属性,您可以将其设置为"EaseOut"


问题在于cameraNode与持续40秒的运行动作相关联。现在我想停止移动cameraNode。我可以删除与相机节点关联的所有动作,但这样做相机节点将无法平稳减速... - chiarotto.alessandro

0

虽然有些混乱,但你可以使用物理学:

在GameOver事件被触发的时候,给相机节点添加一个动态物理体,赋予它当前相机的速度,并施加阻尼使其减速。这将大大控制减速的程度。只需确保该节点不受重力影响,否则它会失去优雅地下落。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接