Hallo Leute,
ich habe mal wieder eine sehr spezielle Frage, die mich aber schon länger beschäftigt. Nämlich der Ladebildschirm.
Öffnet man ein neues Level einfach nur mit der "Open Level"- Node, bleibt das Spiel hängen (und/oder Bildschirm wird schwarz), so lange, bis das Level geladen ist und startet. Damit lässt sich kein Ladebildschirm realisieren (Denke ich).
Man findet zu diesem Thema erstaunlich wenig Tutorials. Habe aber dann die Node "Async Load Assets" gefunden. Mit dieser Node habe ich es tatsächlich geschafft einen funktionierenden Ladebildschirm zu erzeugen. Denn damit lade ich die Assets asynchron im Hintergrund, während das Spiel nicht hängt.
Btw.: Ich gebe in dieser Node den Kompletten Level an.
Soweit so gut, aber mir drängen da Fragen auf:
Wenn die Assets im Hintergrund laden, liegen diese doch im RAM des Computers. In meiner Vorstellung müllt man sich nach einiger Spielzeit doch den Rechner, bzw. den RAM zu. Deswegen gibt es ja anscheinend die "Garbage Collection" - Node, um alle Assets, die keine Referenzen besitzen, aus dem RAM zu entfernen. Diese Node wende ich auch an, aber ich habe das Gefühl, dass diese nicht richtig funktioniert.
Wieso? Wenn ich mein Projekt starte und das Level laden lasse, dann dauert der Ladevorgang ca. 10 Sekunden. Nach dem Laden gehe ich ins Hauptmenü zurück und wende die "Garbage Collection" - Node an. Jetzt müssten doch die Assets im Level wieder aus dem RAM draußen sein, da diese Assets keine Referenzen mehr besitzen sollten. Starte ich den Level jetzt aber wieder, braucht der Ladevorgang weniger als eine Sekunde! Das heißt, dass die Assets im RAM noch liegen müssen. Starte ich mein Projekt neu, lädt es wieder wie normal ca. 10 Sekunden.
Deswegen meine Frage. Übersehe ich etwas? mache ich was falsch? Oder habe ich ein grundlegendes Verständisproblem?
Anscheinend lässt sich auch ein Ladebildschirm mit der "Load Stream Level" -Node realisieren. Dort kann man den RAM wieder leeren mit der "Unload Stream Level"- Node. Allerdings müsste ich bei mir ALLE Levels als Sublevels in EINEN Level integrieren oder? Falls ja, wäre das viel zu viel aufwand (über 40 Levels).
Ich hoffe ihr könnt mir ein wenig Licht ins dunkle bringen
Viele Grüße und einen schönen Tag euch