Schnellstart: PlayFab Party Unity-Plug-In
In dieser Schnellstartanleitung erfahren Sie, wie Sie das Party SDK für Unity installieren und Ihre ersten API-Aufrufe ausführen, um Spieler in einem Partynetzwerk zusammenzuführen. Bevor Sie fortfahren, stellen Sie sicher, dass Sie das Feature "Party aktivieren" über den Game Manager über Ihr PlayFab-Konto abgeschlossen haben.
Notiz
Wenn Sie dieses Plug-In verwenden möchten, um Spiele zu entwickeln, die auf dem Microsoft Game Development Kit (GDK) basieren, müssen Sie das GDK separat erwerben und installieren. Weitere Informationen finden Sie unter Unity-Add-On für Game Core auf Xbox-Konsolen.
Voraussetzungen
Eine installierte Kopie des Unity-Editors. Informationen zum Installieren von Unity für den persönlichen Gebrauch über Unity Hub oder Unity+ für die professionelle Verwendung finden Sie unter Herunterladen von Unity. Überprüfen Sie bei Bedarf den Unity-Support in der Dokumentation Ihrer spezifischen Plattform. Die unterstützte Unity-Mindestversion ist Unity 2017 LTS.
Ein Unity-Projekt, das eine der folgenden Optionen sein kann:
- Ein brandneues Projekt: Weitere Informationen finden Sie unter Erstmaliges Starten von Unity.
- Ein geführtes Tutorialprojekt. Weitere Informationen finden Sie unter Erste Schritte mit Unity.
- Ein vorhandenes Projekt.
Das PlayFab Unity3D SDK "core". Informationen zum Installieren des Unity3D SDK finden Sie im Abschnitt "Herunterladen und Installieren des PlayFab SDK" unter Schnellstart: PlayFab-Clientbibliothek für C# in Unity.
Herunterladen und Installieren des Unity-Plug-Ins für PlayFab Party
Führen Sie die Schritte zum Herunterladen und Installieren des PlayFab Party Unity-Plug-Ins aus.
- Laden Sie das Unity-Plug-In-Asset-Paket für PlayFab-Party herunter (verwenden Sie je nach Plattform einen Verteilungspunkt).
- Wichtig! Informationen finden Sie in der Infodatei , die mit dem Plug-In veröffentlicht wurde. Es ist auf jede bestimmte Version zugeschnitten und kann wichtige Anweisungen für Ihre Plattform enthalten.
- Öffnen Sie Ihr Unity-Projekt.
- Navigieren Sie zu dem Speicherort, an dem Sie das UNITY-Paket gespeichert haben, und doppelklicken Sie darauf, um das Importdialogfeld zu öffnen.
- Um das PlayFab Party Unity-Plug-In in Ihr Projekt zu importieren, wählen Sie Importieren aus.
Einrichten ihrer Szene
In diesem Teil des Leitfadens erfahren Sie, wie Sie Ihrer Szene hinzufügen PlayFabMultiplayerManager
, damit Sie PlayFab Party-APIs aus Unity aufrufen können.
Bevor Sie ein Netzwerk erstellen können, muss ein PlayFab-Spieler angemeldet sein. Informationen zum Anmelden in einem Player finden Sie unter Durchführen Ihres ersten API-Aufrufs unter Schnellstart: PlayFab-Clientbibliothek für C# in Unity.
Navigieren Sie im Unity-Editor im Fenster Projekt zu Assets > PlayFabPartySDK > Prefabs.
Ziehen Sie aus dem Ordner Prefabs den PlayFabMultiplayerManager in Ihre Szene im Hierarchiefenster , und legen Sie ihn ab.
Erstellen Sie in Ihrer Szene ein leeres Spielobjekt mit dem Namen "HelloPartyLogic".
Wählen Sie das HelloPartyLogic-Spielobjekt aus, um den Inspektor zu öffnen.
Wählen Sie Komponente hinzufügen aus.
Geben Sie "HelloPartyLogic" ein, und drücken Sie die EINGABETASTE, um das neue Skriptmenü anzuzeigen.
Drücken Sie erneut die EINGABETASTE, um das neue Skript zu erstellen, HelloPartyLogic.cs.
Suchen Sie das Skript im Projektfenster , und doppelklicken Sie darauf, um das Skript zu bearbeiten.
Fügen Sie ihrem Skript die folgende using-Anweisung hinzu:
using PlayFab; using PlayFab.Party; using PlayFab.ClientModels;
Fügen Sie den folgenden Code in der Start-Methode hinzu, um sich bei PlayFab anzumelden.
// Log into playfab var request = new LoginWithCustomIDRequest { CustomId = UnityEngine.Random.value.ToString(), CreateAccount = true }; PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginFailure);
Fügen Sie der -Klasse die folgenden Methoden hinzu.
private void OnLoginSuccess(LoginResult result) { } private void OnLoginFailure(PlayFabError error) { }
Notiz
Möglicherweise erhalten Sie die folgenden Fehler:
Error CS0227 Unsafe code may only appear if compiling with /unsafe
The plugin requires unsafe code because it interops with a native DLL.
Mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "XGamingRuntime", "AMD64".
Microsoft GDK und Windows unterstützen nur x64.
So beheben Sie diese Probleme:
- Wählen Sie im Unity-Editor Dateibuildeinstellungen > aus.
- Wählen Sie Ihre Plattform aus. Wählen Sie dann in der Dropdownliste Architektur entweder x86_64 oder x64 aus.
- Wählen Sie Spielereinstellungen aus.
- Wählen Sie im rechten Bereich Andere Einstellung aus.
- Suchen Sie die Einstellung Unsicheren Code zulassen , und wählen Sie sie aus.
- Schließen Sie die Fenster Buildeinstellungen und Projekteinstellungen .
Herstellen einer Verbindung mit einem Netzwerk
In diesem Teil des Leitfadens erfahren Sie, wie Sie ein Netzwerk erstellen und beitreten.
Öffnen Sie das HelloPartyLogic.cs Skript. Fügen Sie in der
OnLoginSuccess
-Methode den folgenden Code hinzu, um ein Netzwerk zu erstellen und zu verbinden:PlayFabMultiplayerManager.Get().CreateAndJoinNetwork(); PlayFabMultiplayerManager.Get().OnNetworkJoined += OnNetworkJoined;
Um den OnNetworkJoined-Ereignishandler zu definieren, fügen Sie der -Klasse den folgenden Code hinzu:
private void OnNetworkJoined(object sender, string networkId) { // Print the Network ID so you can give it to the other client. Debug.Log(networkId); }
Speichern Sie, und wählen Sie im Unity-Editor wiedergeben aus. Die Netzwerk-ID wird im Konsolenfenster angezeigt.
Beitreten zu einem vorhandenen Netzwerk
In diesem Teil des Leitfadens erfahren Sie, wie Sie einem vorhandenen Netzwerk beitreten, das von einem anderen Client erstellt wurde.
Öffnen Sie das HelloPartyLogic.cs Skript. Fügen Sie in der OnLoginSuccess-Methode den folgenden Code zu Join a network hinzu:
string networkId = "<your network id>"; PlayFabMultiplayerManager.Get().JoinNetwork(networkId);
Um ein Ereignis zu definieren, das ausgelöst wird, wenn Ihr lokaler Client dem Netzwerk beitritt, fügen Sie der -Methode den
OnLoginSuccess
folgenden Code hinzu:PlayFabMultiplayerManager.Get().OnNetworkJoined += OnNetworkJoined;
Um den OnNetworkJoined-Ereignishandler zu definieren, fügen Sie der -Klasse den folgenden Code hinzu:
private void OnNetworkJoined(object sender, string networkId) { // Print the Network ID so you can give it to the other client. Debug.Log("Network joined!"); }
Es gibt viele Möglichkeiten, die Netzwerk-ID vom Host an andere Spieler zu übertragen, die beitreten möchten. Ein Beispiel dafür finden Sie im Beispiel in diesem Unity-Plug-In.
Speichern Sie, und wählen Sie im Unity-Editor wiedergeben aus. Die Zeichenfolge "Netzwerk eingebunden!" wird im Konsolenfenster angezeigt.
Zugriff auf andere Spieler
Dieser Teil des Leitfadens zeigt Ihnen, wie Sie auf andere Spieler im Netzwerk zugreifen, einschließlich des lokalen Spielers.
Registrieren Sie sich für die Ereignisse OnRemotePlayerJoined und OnRemotePlayerLeft, um auf neue Spieler zu lauschen, die dem Netzwerk beitreten und es verlassen.
Öffnen Sie das HelloPartyLogic.cs Skript. Fügen Sie in der OnLoginSuccess-Methode den folgenden Code zu Erstellen und Einbinden eines Netzwerks hinzu:
PlayFabMultiplayerManager.Get().OnRemotePlayerJoined += OnRemotePlayerJoined; PlayFabMultiplayerManager.Get().OnRemotePlayerLeft += OnRemotePlayerLeft;
Fügen Sie der -Klasse die folgenden Methoden hinzu:
private void OnRemotePlayerLeft(object sender, PlayFabPlayer player) { } private void OnRemotePlayerJoined(object sender, PlayFabPlayer player) { }
Um auf den lokalen Player zuzugreifen, fügen Sie der OnRemotePlayerJoined-Methode den folgenden Code hinzu:
var localPlayer = PlayFabMultiplayerManager.Get().LocalPlayer;
Die PlayFabPlayer-Klasse enthält Eigenschaften zum Identifizieren des Players, Zum Stummschalten und Rendern des Chatzustands in einer Chatbenutzeroberfläche.
Senden und Empfangen von Datennachrichten
In diesem Teil des Leitfadens erfahren Sie, wie Sie Datennachrichten senden und empfangen. Bevor Sie mit dem Senden und Empfangen von Datennachrichten beginnen können, müssen Sie einem Netzwerk beitreten.
Öffnen Sie das HelloPartyLogic.cs Skript. Fügen Sie in der OnLoginSuccess-Methode den folgenden Code hinzu, um auf Datenmeldungen zu lauschen:
PlayFabMultiplayerManager.Get().OnDataMessageReceived += LocalPlayer_OnDataMessageReceived;
Fügen Sie der -Klasse den
OnDataMessageRecieved
Ereignishandler hinzu:private void OnDataMessageReceived(object sender, PlayFabPlayer from, byte[] buffer) { Debug.Log(Encoding.Default.GetString(buffer)); }
Um eine Datennachricht zu senden, fügen Sie der Update-Methode den folgenden Code hinzu:
if (Input.GetButtonDown("Fire1")) { byte[] requestAsBytes = Encoding.UTF8.GetBytes("Hello (data message)"); PlayFabMultiplayerManager.Get().SendDataMessageToAllPlayers(requestAsBytes); }
Speichern Sie HelloPartyLogic.cs, und wählen Sie im Unity-Editor wiedergeben aus.
- Wiederholen Sie in einem zweiten Client die Schritte unter Herstellen einer Verbindung mit einem Netzwerk , um ein Netzwerk zu erstellen und diesem beizutreten.
- Kopieren Sie die Netzwerk-ID, die an Ihren ersten Client zurückgegeben wird, und stellen Sie eine Verbindung mit dem Netzwerk her.
- Wählen Sie die Szene aus, um eine Nachricht zu senden. "Hello (Data Message)" wird im Konsolenfenster angezeigt.
Senden und Empfangen von Chatnachrichten
In diesem Teil des Leitfadens erfahren Sie, wie Sie Chatnachrichten senden und empfangen und Remoteplayer stummschalten. Zusätzlich zum Textchat aktiviert Party automatisch den Sprachchat zwischen Spielern.
Bevor Sie mit dem Senden und Empfangen von Chatnachrichten beginnen können, müssen Sie einem Netzwerk beitreten.
Öffnen Sie das HelloPartyLogic.cs Skript. Fügen Sie in der OnLoginSuccess-Methode den folgenden Code hinzu, um auf Chatnachrichten zu lauschen:
PlayFabMultiplayerManager.Get().OnChatMessageReceived += OnChatMessageReceived;
Fügen Sie der -Klasse den Ereignishandler
OnChatMessageReceived
hinzu.private void OnChatMessageReceived(object sender, PlayFabPlayer from, string message, ChatMessageType type) { Debug.Log(message); }
Speichern Sie HelloPartyLogic.cs, und drücken Sie im Unity-Editor die Wiedergabe.
Wiederholen Sie in einem zweiten Client die Schritte unter Herstellen einer Verbindung mit einem Netzwerk , um ein Netzwerk zu erstellen und diesem beizutreten.
Kopieren Sie die Netzwerk-ID, die an Ihren ersten Client zurückgegeben wird, und stellen Sie eine Verbindung mit dem Netzwerk her.
Wenn Sie ihre Szene auswählen, wird eine Meldung gesendet, die im Konsolenfenster angezeigt wird.
Wenn Sie Ihren Spielern die Möglichkeit geben möchten, andere Spieler stummzuschalten, legen Sie die IsMuted-Eigenschaft auf true fest.
private void OnRemotePlayerJoined(object sender, PlayFabPlayer player) { // This player will not be able to send text or voice communication. // Data messages can still be sent.+ player.IsMuted = true; }
Herstellen einer Verbindung mit einem Netzwerk mit benutzerdefinierten Peerkonnektivitätsoptionen
In diesem Teil des Leitfadens erfahren Sie, wie Sie ein Netzwerk mit benutzerdefinierten Peerkonnektivitätsoptionen erstellen und beitreten. Die Standardoption ist P2P. Der Benutzer kann diese Option jedoch mit einer beliebigen Kombination der hier dargestellten Flags ändern: DirectPeerConnectivityOptions. Dieses Beispiel zeigt, wie P2P festgelegt wird:
Öffnen Sie das HelloPartyLogic.cs Skript. Fügen Sie in der
OnLoginSuccess
-Methode den folgenden Code hinzu, um ein Netzwerk zu erstellen und zu verbinden:PlayfabNetworkConfiguration networkConfiguration = new PlayfabNetworkConfiguration(); networkConfiguration.DirectPeerConnectivityOptions = PARTY_DIRECT_PEER_CONNECTIVITY_OPTIONS_ANY_PLATFORM_TYPE | PARTY_DIRECT_PEER_CONNECTIVITY_OPTIONS_ANY_ENTITY_LOGIN_PROVIDER; PlayFabMultiplayerManager.Get().CreateAndJoinNetwork(networkConfiguration); PlayFabMultiplayerManager.Get().OnNetworkJoined += OnNetworkJoined;
Behandeln des Anhaltens von Titeln
Einige Plattformen unterstützen das vorübergehende Anhalten der Ausführung Ihres Titels: iOS, Switch und GDK. Wenn Ihr Titel angehalten wird, wird der Netzwerkstapel ungültig, und PlayFab Party kann keine Verbindung mit dem PlayFab Party-Netzwerk aufrechterhalten. Besondere Überlegungen sind erforderlich, um das Anhalten und Fortsetzen der Ausführung Ihres Titels bei verwendung von PlayFab Party zu behandeln.
iOS
Unter iOS müssen Sie das Netzwerk der PlayFab-Partei verlassen und erneut eine Verbindung herstellen, was durch Aufrufen von ResetParty() erreicht werden kann.
Switch und GDK
Auf Nintendo Switch und Microsoft GDK müssen Sie playFab Party und alle Ressourcen, die PlayFabMultiplayerManager zugeordnet sind, sauber und dann warten, bis die Ausführung des Titels fortgesetzt wird, bevor Sie playFab Party erneut initialisieren und erneut eine Verbindung mit Ihrem Netzwerk herstellen.
"Zum sauber PlayFab-Party während eines Titelaufsetzungsaufrufs Suspend(). Sobald der Titel die Ausführung fortgesetzt hat, rufen Sie Resume() auf, um playFab Party erneut zu initialisieren.
Nachdem playFab Party und alle Ressourcen, die PlayFabMultiplayerManager zugeordnet sind, erfolgreich initialisiert wurden, wiederholen Sie die Schritte zum Beitreten zu einem vorhandenen Netzwerk.