2017-02-20 3 views
0

Ich habe eine Szene mit mehreren hellen Knoten. Normalerweise läuft mein Spiel mit 60fps auf einem späten 2016 Macbook Pro. (Das Spiel ist für Mac, nicht iOS). Wenn ein heller Knoten hinzugefügt wird, fällt die Bildrate ab und sobald es 4-5 Knoten gibt, ist es extrem langsam und verzögert. Ich bin sie wie folgt zu schaffen:SKLightNodes verursachen Framerate Probleme in SpriteKit

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

Ich weiß, dass die Lichteffekte viel Rendering-Leistung benötigen, aber ich bin überrascht, wie schnell sie Probleme verursachen.

Irgendwelche Ideen, wie ich die Leistung verbessern kann?

Antwort

0

SKLightNodes sind besonders auf älteren Geräten sehr leistungsintensiv.

Wenn Sie zum Beispiel 2 LightNodes in 1 SKScene auf einem iPhone 5 verwenden, sinkt die Bildrate auf 20FPS und macht das Spiel praktisch unspielbar.

Ich machte vor kurzem ein Spiel mit 4 Lichtern in einer Szene und alles war gut auf einem iPhone 7, aber auf einem älteren Gerät war es unbrauchbar.

Also IMO sollten Sie nicht mehr als 1 SKLightNode pro Sprite/Szene verwenden, vielleicht 2 max sonst wird die Leistung sehr schlecht. Ich bin mir nicht sicher, wie die Leistung auf MacOS ist, aber die Art und Weise, wie Sie es mit 4-5 Lichtern beschreiben, ist viel zu viel. Sie können also nicht viel tun, um die Leistung zu verbessern.

SKLightNode performance issues

Das WWDC Sitzung Video Neues in SpriteKit ist erwähnt, dass Sie weniger als 60 FPS bekommen könnten, wenn Sie mehr als ein Licht auf den gleichen Sprit haben.

Hoffe, das hilft

+0

Hmm, ok, danke. Ich brauche vielleicht nur ein paar Tricks für eine Arbeit, weil ich diese Lichter wirklich brauche. Ich werde wahrscheinlich etwas tun, um den Hintergrund schwarz zu machen, weil das Hinzufügen der Lichteffekte zu diesem Knoten die meiste Verlangsamung verursacht. – CodyMace

+0

Ja, ich musste das gleiche mit meinen Spielen machen. Sie laufen immer noch nicht gut auf alten Geräten. Stellen Sie nur sicher, dass Sie gut testen. Glückliche Kodierung – crashoverride777

Verwandte Themen