繁体   English   中英

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

[英]Animations of SpriteKit overlay on SceneKit stops when SceneKit animations stop

我猜可能有人曾经问过这个问题,但是现在我找不到,所以在此进行中。

当SceneKit动画停止时,StopKit上SpriteKit叠加层的动画停止。 这是意外的。 就像整个SCNView一样,一旦3D内容不动,它的孩子就会入睡。 如何使Spritekit场景独立于Scenekit场景进行动画处理? 更新:我已经确认,如果我添加一个无限旋转的简单3D框并将其放在视图中的某个位置,则3D场景不会“休眠”,并且叠加层也不会。 是否有某个设置可以阻止SceneKit部件进入休眠状态?

背景:我使用SCNView.overlaySKScene 我对那个叠加层的一个子节点有一个无限重复的动画。 一旦在SceneKit场景中进行动作和/或动画处理,叠加的2D素材也会进行动画处理,但是一旦3D动画停止就停止。

iOS 9.2.1。

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

SceneKit在猜测何时应运行渲染循环时相当保守。 如果场景中有CAAnimationSCNAction ,或者物理引擎正在做某事,它将运行,但是我想就是这样。

如果您还有其他要运行渲染循环的内容(例如需要运行自己的游戏循环的叠加SKScene ),只需将视图的playing属性设置为true。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM