DefaultCameraController 上的 SceneKit 动画

Posted

技术标签:

【中文标题】DefaultCameraController 上的 SceneKit 动画【英文标题】:SceneKit Animations on DefaultCameraController 【发布时间】:2020-07-28 12:25:27 【问题描述】:

请原谅我在这里的无知。我是 SceneKit 的新手。我试图让我的默认相机控制器以一种平滑的“平移运动”进行动画处理。我正在尝试使用类似的东西:

scnView.defaultCameraController.translateInCameraSpaceBy(x: 10, y: 10, z: 10)

SCNView 进入视图控制器时。问题是这个动作跳跃,我希望它动画化,从当前视角过渡到过渡中帧的新位置表示空间中两点之间的关系。

如果可能的话,我也希望在defaultCameraController 上发生这种情况。

谢谢!

【问题讨论】:

嘿迈克,试试这个帖子:57586437 - 做你自己的相机,然后你几乎可以做任何你想做的事。默认的相机控制器可以工作 - 有点,但它有一些你可能不希望长期使用的限制。 【参考方案1】:

让动画工作的一个快速解决方案是将您的翻译包装在 SCNTransaction 块中。

SCNTransaction.begin()
SCNTransaction.animationDuration = 5
scnView.defaultCameraController.translateInCameraSpaceBy(x: 10, y: 10, z: 10)
SCNTransaction.commit()

【讨论】:

嘿詹姆斯!感谢您的回答。您是否知道一种将这些链接起来的方法,比如将其设置回原来的位置? SCNTransaction 有一个完成块,您可以使用它来触发另一个动画。但是我认为更好的方法是创建自己的相机节点并使用 SCNActions 对其进行动画处理,这样您就可以更好地控制自己可以做什么。 知道了!谢谢,詹姆斯。

以上是关于DefaultCameraController 上的 SceneKit 动画的主要内容,如果未能解决你的问题,请参考以下文章

电脑上GetTickCount64在哪里

.htaccess:在所有页面上强制 www,在一个页面上强制 https,在所有其他页面上强制 http

为啥当我在 grails 上删除一对多关系上的父级时,会在子级上调用 beforeInsert 事件?

地理定位在笔记本电脑上工作,但不在智能手机上

键盘上的PERIOD键在啥地方?

工作上996,生活上669,并不是什么难事儿!