当 SceneKit 动画停止时,SpriteKit 的动画覆盖在 SceneKit 上停止
Animations of SpriteKit overlay on SceneKit stops when SceneKit animations stop
我想之前一定有人问过这个问题,但我现在找不到,所以暂时先到这里。
当 SceneKit 动画停止时,SpriteKit 的动画覆盖在 SceneKit 上。这是出乎意料的。就像整个 SCNView 和它的 children 只要 3D 内容不移动就进入睡眠状态。如何使 spritekit 场景独立于 scenekit 场景的作用而动画?
更新:我已经确认,如果我添加一个无限旋转的简单 3D 框并将其保留在某个视图中,则 3D 场景不会 "sleep",叠加层也不会。有什么地方可以阻止 SceneKit 部分休眠吗?
背景:
我使用 SCNView.overlaySKScene
。我对该叠加层的其中一个子节点进行了无限重复的动画。一旦动作 and/or 动画在 SceneKit 场景中继续,叠加的 2D 东西也会动画,但一旦 3D 动画停止就会停止。
iOS 9.2.1.
SceneKit 视图 运行 仅当它知道正在播放动画时才会 update/render 循环。 (因为如果要渲染的内容没有变化,渲染只会浪费 CPU/GPU 时间并耗尽电池电量。)
SceneKit 在猜测何时应该 运行 渲染循环时相当保守。它 运行s 如果场景中有 CAAnimation
s 或 SCNAction
s 或者如果物理引擎正在做某事,但我认为仅此而已。
如果您有其他想要 运行 渲染循环的东西(比如需要 运行 自己的游戏循环的叠加层 SKScene
),只需设置视图的playing
属性 为真。
我想之前一定有人问过这个问题,但我现在找不到,所以暂时先到这里。
当 SceneKit 动画停止时,SpriteKit 的动画覆盖在 SceneKit 上。这是出乎意料的。就像整个 SCNView 和它的 children 只要 3D 内容不移动就进入睡眠状态。如何使 spritekit 场景独立于 scenekit 场景的作用而动画? 更新:我已经确认,如果我添加一个无限旋转的简单 3D 框并将其保留在某个视图中,则 3D 场景不会 "sleep",叠加层也不会。有什么地方可以阻止 SceneKit 部分休眠吗?
背景:
我使用 SCNView.overlaySKScene
。我对该叠加层的其中一个子节点进行了无限重复的动画。一旦动作 and/or 动画在 SceneKit 场景中继续,叠加的 2D 东西也会动画,但一旦 3D 动画停止就会停止。
iOS 9.2.1.
SceneKit 视图 运行 仅当它知道正在播放动画时才会 update/render 循环。 (因为如果要渲染的内容没有变化,渲染只会浪费 CPU/GPU 时间并耗尽电池电量。)
SceneKit 在猜测何时应该 运行 渲染循环时相当保守。它 运行s 如果场景中有 CAAnimation
s 或 SCNAction
s 或者如果物理引擎正在做某事,但我认为仅此而已。
如果您有其他想要 运行 渲染循环的东西(比如需要 运行 自己的游戏循环的叠加层 SKScene
),只需设置视图的playing
属性 为真。