SKLightNodes导致SpriteKit中的帧速率问题

时间:2017-02-20 06:53:43

标签: ios swift macos sprite-kit

我有一个有多个光节点的场景。通常我的游戏在2016年末的Macbook Pro上以60fps的速度运行。 (该游戏适用于Mac,而非iOS)。当添加一个光节点时,帧速率下降,一旦有4-5个节点,它就会非常缓慢且滞后。我这样创建它们:

let light: SKLightNode = SKLightNode()
light.falloff = 4.5
addChild(light)

我知道灯光效果需要很多渲染能力,但我对它们造成问题的速度感到惊讶。

关于如何提高绩效的任何想法?

1 个答案:

答案 0 :(得分:0)

SKLightNodes的性能非常高,特别是在旧设备上。

例如,如果你在iPhone 5上的1个SKScene中使用2个LightNodes,帧速率会下降到20FPS并使游戏基本无法播放。

我最近在一个场景中制作了一个带有4个灯光的游戏,iPhone 7上的一切都很好,但在较旧的设备上它无法使用。

所以IMO你不应该为每个Sprite / Scene使用超过1个SKLightNode,也许最多2个,否则性能会非常糟糕。我不确定macOS的性能如何,但你用4-5灯描述它的方式太多了。因此,您无法提高性能。

SKLightNode performance issues

WWDC会话视频SpriteKit中的新功能提到,如果同一个精灵上有多个灯光,则可能会少于60 FPS。

希望这有帮助