Jump to content
Unity Insider Forum

PlayerPrefs in neuer Scene abfragen?


AniProGuy2

Recommended Posts

Hallo Community,

Ich habe ein Problem mit den PlayerPrefs, das ich allein einfach nicht lösen kann. Das Prinzip dessen, was ich machen will, ist recht simpel erklärt. Ich mache ein Multiplayer Spiel mit der Photon Engine und dabei gibt es eine Integer "HostOrClient" in den Playerprefs, die jenachdem ob man hostet oder joint auf 0 oder 1 gesetzt wird. Damit wird dann in der Lobby-Scene gearbeitet, also z.B. ob man das Spiel starten kann oder ob man ein neues Passwort setzen kann usw.

Das Problem ist nur, dass wenn ich beim joinen die Integer auf "1" setze und dann in der Lobby-Scene abfrage, sie dort immernoch als "0" angegeben wird. Wenn ich in der Registry nachschaue, ist sie aber dort auch "1".

Das ist der Scriptteil für das Joinen. Im Prinzip wird durch das Klicken des Buttons einfach die "JoinRoom" Methode aufgerufen. Nachdem man in den Photon Room gejoint ist, kommt dann "OnJoinedRoom" zurück und man kommt öffnet die Lobby-Scene.

	// join room
	void JoinRoom () {
		PlayerPrefs.SetInt ("HostOrClient", 1);
		joinedRoom = true;
		PhotonNetwork.JoinRoom (roomInfo.Name);
	}
	// open lobby
	public void OnJoinedRoom () {
		if (joinedRoom)
			SceneManager.LoadScene ("Lobby");
	}


Und in der Lobby-Scene wird dann dieses Script hier aufgerufen (nur der wichtige Teil versteht sich). Ausgegeben wird dann aber "0" und nicht "1"
 

// start 
	void Start () {
		print (PlayerPrefs.GetInt ("HostOrCLient"));


Könnt ihr mir helfen? Ich verstehe das echt nicht. Wenn ich dann übrigens das Spiel starte (also das eigentliche Level lade) und dort nochmal die Integer abfrage, ist sie dann "1" o.O

Danke schonmal im Voraus,
MfG,
AniProGuy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich könnte jetzt wilde Theorien und Lösungen anbieten, aber vermutlich ist es nur ein Syntaxfehler, du hast beim String statt "...Client" "...CLient" geschrieben und dieser ist vermutlich "case sensitive", d.h. du fragst den falschen Key ab:

print (PlayerPrefs.GetInt ("HostOrCLient"));

ändere mal zu =>

print (PlayerPrefs.GetInt ("HostOrClient"));

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...