2016-12-02 1 views
0

Ich erstelle ein Multiplayer-Spiel in Unity.Wie kann ich den Raum abbrechen, wenn in Google Play Games kein anderer Spieler verfügbar ist?

einen Raum zu schaffen, ich bin mit:

PlayGamesPlatform.Instance.RealTime.CreateQuickGame(MinOpponents, MaxOpponents, GameVariant, listener); 

Um Fortschritt der Raumerstellung, ich bin mit:

public void OnRoomSetupProgress(float progress) { 
} 

Die obige Funktion wird jedoch nur einmal bei progress = 20 genannt und dann nie wieder, wenn keine anderen Spieler verfügbar sind.

Da ich anfangs nicht viele Spieler mit dieser App haben werde, möchte ich 10 Sekunden warten, um mich mit einem anderen Spieler zu verbinden und wenn es keine Spieler gibt, möchte ich das Spiel mit eingebauter AI starten . Dazu muss ich den aktuellen Einrichtungsvorgang sauber abbrechen. Ich weiß nicht, wie ich mich weiter bewegen kann.

Bitte lassen Sie mich wissen, wenn Sie die Lösung für dieses Szenario kennen.

Antwort

0

Im Hinblick auf die Multiplayer-Spiel in Unity, diese GitHub post nur über den Raum verlassen diskutiert, wenn das Spiel mit PlayGamesPlatform.Instance.RealTime.LeaveRoom(); beendet OnLeftRoom einen Anruf an Ihre Zuhörer auslösen.

Möglicherweise möchten Sie versuchen Adding Real-time Multiplayer Support to Your Android Game speziell Adding a waiting room UI die besagt, dass

Wenn Sie die Warteraum-Benutzeroberfläche verwenden, müssen Sie keine zusätzliche Logik implementieren müssen, um zu entscheiden, wann das Spiel gestartet werden soll oder abgesagt, wie man sehen früher in shouldStartGame() und shouldCancelGame(). Wenn Sie ein Ergebnis Activity.RESULT_OK erhalten, können Sie sofort beginnen, da die erforderliche Anzahl der Teilnehmer verbunden wurde. Wenn Sie ein Fehlerergebnis von der Benutzeroberfläche des Warteraums erhalten, können Sie den Raum einfach verlassen.

den Raum zu verlassen, rufen leave():

// leave room 
Games.RealTimeMultiplayer.leave(mGoogleApiClient, null, mRoomId); 

// remove the flag that keeps the screen on 
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
Verwandte Themen