我正在尝试第一次使用SceneKit进行游戏,并且想知道你应该为游戏循环更新游戏状态做些什么。我知道
SCNSceneRendererDelegate.renderer:updateAtTime:
但如果没有对场景进行任何更改并且不需要重新渲染,则不会调用此方法。我也知道你可以使用
强制渲染SCNView.playing = true
但是在没有必要时强制渲染它似乎很浪费,因为这在我的游戏中经常发生。我可以使用NSTimer
,但是如何将其与render:updateAtTime:
同步?
答案 0 :(得分:1)
to_number()
的Apple文档专门将SCNSceneRendererDelegate
,renderer:updateAtTime:
和renderer:didApplyAnimationsAtTime:
作为添加自定义游戏循环逻辑的地方。
当renderer:didSimulatePhysicsAtTime:
为SCNView.playing
时,您是否(使用乐器)测量了性能或能量差异?这听起来像是一个不成熟的优化。