Jump to content
Unity Insider Forum

Unity Szenenwechsel


DrSkillix

Recommended Posts

Hallo Leute! 

ich habe eben erst begonnen mit der Spieleprogrammierung und wollte euch um einen Rat fragen. 

Ich entwickle ein kleines 2D Adventure Spiel indem der Charakter unter anderem einen Computer benutzen soll. Ich habe ein Desktop gezeichnet und alles funktioniert schön und gut. 

Allerdings habe ich für den Wechsel der aktuellen Scene zum Desktop mit einem Szenenwechsel gearbeitet. Problem nun ist, dass wenn ich vom Desktop zurückwechsle, meine Szene samt dem Introdialog etc von Vorne beginnt was ja logisch ist. 

Gibt es da eine besondere Methodik oder würdet ihr das Ganze von Grundauf anders gestalten? Irgendwie muss sowas ja gehen, wenn es Minispiele im Spiel selber gibt, läuft das ja schon über eigene Szenen oder? 

Vielen Dank im Voraus ! 

 

LG Theo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist so eine Sache, wo ich selber noch nie "die" Lösung gesehen habe, und ich gehe davon aus, dass es die auch nicht gibt. Gibt also für alles Vor- und Nachteile.

Was recht üblich ist, ist deine Computerszene additiv zu laden. Das bedeutet, dass die vorherige Szene nicht entladen wird, sondern bleibt. Dann kannst du ihre Inhalte manuell deaktivieren, irgendwann die additive Szene entladen und die andere wieder aktivieren. Das Deaktivieren und Reaktivieren der ersten Szene ist hier das problematische. Ich habe gerade noch einmal nachgeschaut... es scheint nach wie vor keinen Weg zu geben, Szenen zu deaktivieren. Du müsstest also sowas machen wie die gesamte Szene einem GameObject unterzuordnen und dann dieses zu deaktivieren.

Alternativ kannst du einfach die zweite Szene lassen und stattdessen z.B. ein Prefab instanziieren. Dabei hast du natürlich dasselbe Problem, dass der Rest der Szene irgendwie auf Pause gesetzt werden muss.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber müsste das nicht auch mit additiven Laden der Scene gehen?

Also

Scenemanger.LoadScene ("Deine Computerscene", LoadSceneMode.Additiv)

Glecihzeitig pausierst du deine hauptscene wenn du willst.

Und zurück geht es indem du die Computerscene schließt oder mit
 

 SceneManager.UnloadScene ("Deine ComputerScene");



Ich hatte das zumindest mal so gemacht.
Bei mir ist man auch an ein Terminal gegangen.
Da das nicht viel berchnung erfordert, hatte ein Pausieren bei mir gereicht.

NACHTRAG:
 

habe gerade gesehen das @Sascha dasauch schon aufgegriffen hatte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...