我想之前一定有人问过这个问题,但我现在找不到,所以在这段时间里。
当SpriteKit动画停止时,SceneKit上的SceneKit覆盖停止。这真是出乎意料。就像整个SCNView和它的孩子一旦3D内容不移动就会进入睡眠状态。如何使spritekit场景独立于scenekit场景的动画?更新:我已经确认,如果我添加一个简单的3D框,无限期旋转并将其保存在某个视图中,3D场景不会“睡眠”,覆盖也不会。是否有什么设置可以阻止SceneKit部件休眠?
背景:我使用SCNView.overlaySKScene。我有一个无限期重复的动画的一个子节点的覆盖。当一个动作和/或动画在SceneKit场景中进行时,覆盖2D的东西也会有动画,但一旦3D动画停止,就会停止。
iOS 9.2.1.
发布于 2016-01-21 07:06:17
只有当SceneKit视图知道动画正在进行时,它才会运行它的update/render循环。(因为如果渲染的内容没有变化,渲染只会浪费CPU/GPU的时间,消耗电池的能量。)
SceneKit在猜测何时运行render循环时相当保守。如果场景中有CAAnimations或SCNActions,或者物理引擎正在做什么,它就会运行,但我认为就是这样。
如果您有其他东西想要运行呈现循环(比如需要运行自己的游戏循环的覆盖SKScene ),只需将视图的playing属性设置为true即可。
https://stackoverflow.com/questions/34913997
复制相似问题