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

PlayerPrefs in neuer Scene abfragen?

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

Share this post


Link to post
Share on other sites

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

 

  • Like 1

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  

×