当SceneKit动画停止时,SceneKit上SpriteKit叠加的动画停止

时间:2016-01-21 01:48:31

标签: ios sprite-kit scenekit

我想有人必须先问过这个问题,但我现在无法找到它,所以在此期间也是如此。

当SceneKit动画停止时,SceneKit上的SpriteKit叠加动画停止。这是出乎意料的。它就像整个SCNView一样,一旦3D内容移动,它的孩子就会进入睡眠状态。如何使spritekit场景动画独立于scenekit场景的作用? 更新:我已经确认,如果我添加一个无限旋转的简单3D盒子并将其保存在某个地方的视图中,那么3D场景就不会睡觉了#34;叠加也没有。是否有一个设置可以阻止SceneKit部分进入休眠状态?

背景: 我使用.replace("aa", "a").replace("b", "bb")。我有一个无限期重复的动画,其中一个重叠的子节点。一旦动画和/或动画在SceneKit场景中进行,叠加2D内容也会动画,但一旦3D动画停止就会停止。

iOS 9.2.1。

1 个答案:

答案 0 :(得分:6)

SceneKit视图仅在知道正在进行动画时才运行其更新/渲染循环。 (因为如果要渲染的内容没有变化,渲染只会浪费CPU / GPU时间并消耗电池电量。)

SceneKit在猜测应该何时运行渲染循环时相当保守。如果场景中有CAAnimationSCNAction s或者物理引擎正在做某事,它会运行,但我认为这是关于它的。

如果你有其他想要运行渲染循环的东西(比如需要运行自己的游戏循环的覆盖SKScene),只需设置视图{{1} }属性为true。