Footloose Geschrieben 19. Juni 2017 Melden Share Geschrieben 19. Juni 2017 Hallo Ich habe nochmal eine kleine Frage an euch Und zwar arbeite ich ja an einem kleinen Multiplayergame. Ziel ist es einfach zu schauen ob ich das irgendwann mit einem (oder ein paar mehr) Kumpels zusammen zocken kann. Dazu habe ich natürlich dann einen Server laufen. Dazu die Clients als jeweiligen Spieler. Nun möchte ich, um das auszuprobieren, ein Fenster für das User-Profil machen, welches zu sehen sein soll wenn der Spieler sich einloggt (was bereits funktioniert). Nun hat natürlich jeder Spieler, der sich registriert, eine ID zugewiesen bekommen (aktuell nur auf localhost zum testen). Zum Beispiel hat der Spieler "foo" die ID "3". Diese ID dient mir als Primärschlüssel, um in der Tabelle den Spieler zu indentifizieren. Ich möchte also dann in dem Fenster weitere Tabelleninhalte auslesen, und dazu die ID nutzen, damit auch der richtige Content ausgelesen wird. Bei ID müsste also 3 stehen, bei Name foo usw. Jetzt zu meinem Problem: Das Register/LogIn-Fenster ist in einer anderen Szene. Wenn ich nun also E-Mail und Passwort eingebe, überprüft er die und geht bei Erfolg auf die nächste Szene, die die ihr im Bild sehen könnt. Doch wie weiß der in der Szene bzw. in der neuen Szene dann noch, welcher Spieler er ist? Kann ich das dann irgendwie mitgeben? Also er soll sich halt erinnern, dass er der Spieler "Foo" mit der ID "3" ist, in dem Beispiel. Sorry für die Anfänger-Frage. Liebe Grüße, Tobi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 20. Juni 2017 Melden Share Geschrieben 20. Juni 2017 Du könntest ein Leeres Gameobjekt nutzen, welches nur einige Public Variablen in einem Script hat, wie z.B. deine ID und den Spielername. Dieses GO bekommt im Script dann in der Awake() oder Start() den Object Befehl DontDestroyOnLoad. Somit bleibt dieses GO bei jedem Szenenwechsel am Leben und kann jederzeit wieder genutzt werden. Natürlich musst du dieses GO jetzt manuell löschen, wenn du es nicht mehr brauchst oder wenn du z.B. in die allererste Szene zurück gehst. Du könntest auch eine Script nutzen, in dem nur einige Static Variablen zur Verfügung gestellt werden. Dieses Script braucht keinem Objekt zugewiesen werden. Static Variablen sind global gültig und können deswegen nur einmalig vorkommen. Sie behalten ihren Wert, bis das Spiel beendet wird oder sie eben mit neuen Werten bestückt werden. Und deswegen haut man sich schnell nen Bug ins Spiel, weil man gerne vergisst, die Variablen wieder zurück zu setzen. Die Variablen kannst du ganz leicht über scriptname.variablenname abfragen und beschreiben. Du musst nicht erst danach suchen und eine Referenz bilden. Static Variablen solltest du aber dennoch nur minimal nutzen. Für eine Datenablage, wie z.B. für ein SaveGame oder, wie in deinem Fall, für einzigartige Informationen sind sie gut. Zum Datenaustausch, weil es so schön einfach ist, solltest du sie nicht nutzen, denn du wirst dir ruck-zuck die Variablen zur falschen Zeit überschreiben und ewig nach der Fehlerquelle suchen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Footloose Geschrieben 20. Juni 2017 Autor Melden Share Geschrieben 20. Juni 2017 Ah okay danke Werde ich mal ausprobieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Footloose Geschrieben 21. Juni 2017 Autor Melden Share Geschrieben 21. Juni 2017 Also ich habe da ergänzend nochmal eine dumme Frage zu. Ich möchte (zum testen) auf zwei Endgeräten spielen. Also 1.) Auf einem Server hosten. Und 2.) Auf zwei Endgeräten einen Client starten und die dann zusammen spielen lassen. Auf meinem Rechner laufen die verschiedenen Clients soweit und das wird auch alles aktualisiert. Nur läuft das bisher immer noch auf meinem Localhost (habe ich bei dem NetworkManager auch so angegeben). Das heißt ja es läuft nur Lokal auf meinem Rechner. Aktuell nutze ich ja meinen Rechner als Server. Nur ich dachte immer bei Unity kann man auch mit wenigen CCU's einen Server zum Testen nutzen. Nur finde ich nicht heraus wie das geht bzw. wo ich da mehr zu finde, weil ich immer nur zu der "Multiplayer"-Werbeseite weitergeleitet werde. Oder geht das garnicht? Beste Grüße, Tobi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.