Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift SceneKit摄影机动画移动和减速_Swift_Animation_Move_Scenekit_Scnnode - Fatal编程技术网

Swift SceneKit摄影机动画移动和减速

Swift SceneKit摄影机动画移动和减速,swift,animation,move,scenekit,scnnode,Swift,Animation,Move,Scenekit,Scnnode,我正在使用以下代码沿z轴移动SCNScene场景的摄影机节点: let moveTo = SCNAction.moveTo(SCNVector3(x:0,y:0,z:-40), duration: 40); cameraNode.runAction(moveTo) 我想给一个事件(如我的游戏触发的GameOver事件)以顺利进行 使相机减速,直到停止 如何才能平稳地停止移动相机?SCNAction有一个“计时模式”属性,您可以将其设置为“EaseOut”凌乱,但您可以使用物理: 在启动Gam

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

let moveTo = SCNAction.moveTo(SCNVector3(x:0,y:0,z:-40), duration: 40); 
cameraNode.runAction(moveTo)
我想给一个事件(如我的游戏触发的GameOver事件)以顺利进行 使相机减速,直到停止


如何才能平稳地停止移动相机?

SCNAction有一个“计时模式”属性,您可以将其设置为“EaseOut”

凌乱,但您可以使用物理:


在启动GameOver事件时,将动态物理体添加到摄影机的节点,为其提供摄影机的当前速度,并应用阻尼使其减速。这也将在很大程度上控制经济放缓。只需确保节点不会受到重力的影响,因为这样会看到节点毫无优雅地下落。

问题在于camerNode将运行操作与持续时间40秒相关联。现在我想停止移动cameraNode。我可以删除所有与摄影机节点相关的操作,但这样cameraNode将不会平稳减速…这是一篇非常古老的帖子,但这篇评论可能会对某些人有所帮助。我不确定它在这种情况下是否有效,但您可以这样做:
gameView.defaultCameraController.inertiaFriction=0.01