为什么可以在渲染循环中而不是在渲染循环之外访问Scenekit对象的速度?

时间:2019-12-05 07:29:28

标签: ios swift

我迅速创建了一个计时器,以每秒更新5次,因为我不需要更频繁地调用方法,如下所示:

slowRenderTimer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(slowRenderUpdate), userInfo: nil, repeats: true)

效果很好,但是在此循环中访问移动的物理物体的速度时,该值始终返回SCNVector3(0,0,0)。但是,在检查传统渲染器中的速度时,如下所示:

func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {

我可以检索节点的准确速度。

我通过在render循环中更新一个类变量并在慢速渲染中使用它来解决了这个问题,但是我想知道的是,为什么会发生这种情况?这是因为只有在调用循环时对象才在运动中,而不是在循环外部时才在运动吗?如果是这样,我的慢速渲染循环有时是否会同时被调用?我已经看过渲染周期图,但是我想看不到它们如何在渲染循环之外连接。谢谢。

0 个答案:

没有答案