Jump to content
Unity Insider Forum

Verschiedene Spieler


Recommended Posts

Hallo zusammen

 

Ich hätte da mal eine Frage

 

Ich habe vor bevor das Spiel anfängt via GUI den Benutzer eine Spielerfigur auszuwählen

 

Wie ich die GUI hin bekomme ist mir eigentlich klar

Meine Frage ist nun wie kann ich dem SpieleScript mit übergeben welche Spielerfigur der User gewählt hat

 

Durch die GUI wird ja eine neue Scene geladen via:

Application.LoadLevel("Kampagne1");

 

Wie kann ich un der Scene Kampagne 1 mitteiler dass der User Figur NR 3 ausgewählt hat und die Kampagne danach spielifgur 3 lädt?

 

Vielen Dank für eure Hilfe

Link zu diesem Kommentar
Auf anderen Seiten teilen

Irgendetwas muss die Information festhalten. Irgendwer anderes muss diese Information "wiederverwerten".

 

Im Prinzip scheinen mir nur folgende Lösungen einzufallen (die endgültige Lösung bzw. die bevorzugte kenn ich nicht xD...sry):

  • Du hälst die Informations als Klassen-Attribut
  • Du hälst die Informations als Instanz-Attribut eines Singletons
  • Du speicherst die Information ausserhalb (UserData oder so) und lädst sie nachträglich

Nachdem ich die obige Liste geschrieben habe war es mir klar wonach ich suchen muss und fand auf anhieb folgenden Link:

Viel Glück

 

P.S.: Ich wäre wahrscheinlich so faul und würde Klassen Attribute mit Static machen xD

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es gibt noch eine weitere Möglichkeit, die ich persönlich für die Sauberste halte:

 

Object.DontDestroyOnLoad(Object)

 

Damit sorgst du dafür, dass ein Objekt das nicht-additive Laden einer neuen Szene "überlebt" ;-)

 

Etwas aufpassen muss man da, dass man dann nicht innerhalb kürzester mehrere solche Objekte baut. Dazu gibt es spezielle Varianten des Singleton-Patterns, bei denen sichergestellt wird, dass neue Instanzen sich automatisch gleich wieder löschen (z.B. wenn nach dem Spiel-Level wieder die Menu-Scene geladen wird, aus der das Objekt ja ursprünglich kommt).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke

 

Eine mieglichkeit bei application load eine variable mitzugeben gibt es nicht?

 

Bei html php wuerde ich das zb mit get machen

 

 

Bei obj dint destroy müsste ich also sicherstellen wenn das level beendet ist dass dann das obj zerstoert wird

 

Vielen dank

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eine mieglichkeit bei application load eine variable mitzugeben gibt es nicht?

 

Ne, braucht es aber auch nicht.

 

Bei obj dint destroy müsste ich also sicherstellen wenn das level beendet ist dass dann das obj zerstoert wird

 

Entweder das, oder - was normalerweise sinnvoller ist: Wenn die Szene, aus der das Objekt ursprünglich stammt wieder geladen wird, muss die neue Instanz des Objektes gelöscht werden.

 

Eine mögliche Lösung findest du hier: http://wiki.unity3d.com/index.php/Singleton ... finde ich persönlich jetzt etwas kompliziert. Ich denke über die Forum-Suche nach "Singleton" findest du einen Thread mit ein paar simpleren Alternativen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...