SceneKit didApplyAnimationsAtTime 计算时间

SceneKit didApplyAnimationsAtTime calculation time

您好,我正在尝试计算我的渲染器 运行 动作和动画所花费的时间。 据我了解:https://developer.apple.com/documentation/scenekit/scnscenerendererdelegate

rendererDiDSomething 中的时间 属性:如果您的游戏需要时间在屏幕上呈现,则每次回调中的时间应该不同。

我有一个包含动画的复杂场景,我可以使用 SceneView 统计信息看到动画每帧占用大量资源。但是当我在回调中检查时间 属性 时,它们都是一样的。 我还尝试计算帧之间的时间差,它总是 0.0

我在这里错过了什么?

片段说明:

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

func renderer(_ renderer: SCNSceneRenderer, didApplyAnimationsAtTime time: TimeInterval) {
    print(time)
}

func renderer(_ renderer: SCNSceneRenderer, didRenderScene scene: SCNScene, atTime time: TimeInterval) {
    print(time)
}

谢谢!

我认为所有具有 time 参数的 SceneKit 的 renderer() 实例方法向我们显示相同的值,因为这个时间是由 [= 提供的系统时间(以秒和毫秒表示) 12=] Double class.

的类型别名

看来我们无法在这个API中找出渲染循环中的子帧时间是什么,比如评估约束的时间恰好发生,或应用动画时。