Jump to content
Unity Insider Forum

Nächste Map laden + Variablen / Skripte /objekte übernehmen


XKeuleX

Recommended Posts

Hallo!

Ich hoffe man versteht was ich will :D

 

Also, ich möchte im Prinzip Variablen und Objekte von Map zu Map transportieren, aber hab leider nicht so genau eine Ahnung wie das funktioniert. Momentan wechsle ich zwischen zwei maps, indem ich die neue Map lade, auf der bereits ein Player-Gameobjekt gesetzt wurde.

An meinem ursprünglichen Playerobjekt ist jetzt ein Skript geheftet, zum aufheben und rumtragen von Objekten. Wie könnte ich mein Playerobjekt inclusive der per Skript angehefteten Childs auf die neue Map übertragen? Mein Player hat auch eine Gesundheitsanzeige, welche logischerweise bei einem neuen Playerobjekt wieder auf Standart ist.

Wie funktioniert das jetzt? Muss ich auf der neuen Map alles per skript initialisieren? Sprich beim Mapladen übergeben (wie?) welches Objekt der Spieler in der Hand hat, und es auf der neuen Map dann wieder anfügen? Wie übergeb ich die Gesundheit?

Wäre super wenn mir jemand helfen kann! :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nur als kleiner Hinweis,

ich benutze DontDestroyOnLoad oft für GOs mit der Hintergrundmusik.

Allerdings muss man dann aufpassen, dass wenn man irgendwann wieder in das entsprechende Level kommt, man zweimal das selbe Objekt hat.

 

Das hat bei mir schon oft zu Verwirrung geführt ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nur als kleiner Hinweis,

ich benutze DontDestroyOnLoad oft für GOs mit der Hintergrundmusik.

Allerdings muss man dann aufpassen, dass wenn man irgendwann wieder in das entsprechende Level kommt, man zweimal das selbe Objekt hat.

 

Das hat bei mir schon oft zu Verwirrung geführt ;)

 

Ich würde dafür ne extra klasse gemachen. Ich nenne das teilweise Resourcer(frag nicht warum^^).

 

Dann wende ich es so an;

Audioclip bgmusic = Resourcer.instance.bgmusic[0];
oder
Audioclip bgmusic = Resourcer.instance.bgmusic1;

Das benutze ich auch oft für andere Dinge wie Sprites, Prefabs usw.

 

Oder am Besten gleich ne eigene Klasse für Hintergrundmusik erstellen. Sowas wie BGMManager.cs. Kann man dann mehr machen.

BGMManager.instance.PlayMusic("rainbow1");
BGMManager.instance.StopMusic();
BGMManager.instance.GetCurrentPlayingMusic();

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was auch super funktioniert ist eine leere Initialszene. Klingt doof, aber macht echt Sinn.

Und zwar wird bei Spielstart einfach eine Szene geladen wo nur diese Elemente drin sind die nicht zerstört werden sollen. Das geht ratzfatz und diese Szene lädt dann sofort die richtige Szene nach. Da man nicht mehr in die Initialszene kommt, gibt es auch keine Probleme mit doppeltem Laden von nicht zerstörbaren Objekten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...