Jump to content
Unity Insider Forum
Sign in to follow this  
XKeuleX

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

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! :)

Share this post


Link to post
Share on other sites

Ouh, das klingt als wäre der Befehl genau für mein Problem gemacht :D Also kann ich im prinzip das Objekt per dontDestroyOnLoad behalten, geb beim mapload dem objekt einfach die neuen koordinaten durch (z.B. die position vor der tür durch die man gerade kam) und fertig ja? :)

Share this post


Link to post
Share on other sites

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 ;)

Share this post


Link to post
Share on other sites

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();

  • Like 1

Share this post


Link to post
Share on other sites

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.

  • Like 4

Share this post


Link to post
Share on other sites

Ja so mach ich das auch. Dient auch perfekt dazu um eventuell auch ein Logo oder etwas ähnliches anzuzeigen.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×