Freigeben über


Chatberechtigungen und Stummschaltung der PlayFab-Party

Übersicht

PlayFab Party bietet Ihnen eine differenzierte Kontrolle darüber, wie Ihre Spieler miteinander kommunizieren können. Anstatt Teams oder Kanäle anzugeben, erfordert PlayFab Party, dass explizite Berechtigungen zwischen jedem Paar von Chatsteuerelementen definiert werden. Mit dem Chatberechtigungssystem können Sie die eingehende und ausgehende Sprachkommunikation sowie die eingehende Textkommunikation zwischen einem beliebigen Chatsteuerelement steuern.

Chatberechtigungen

Die Kommunikation zwischen Chat-Steuerelementen ist standardmäßig deaktiviert, und es liegt in der Ob-Instanz des Spiels, die rechte PartyChatPermissionOptions Zwischen den einzelnen Chatsteuerelementen festzulegen. Chatberechtigungen sollten die Beziehung zwischen den einzelnen Chatsteuerelementen entsprechend dem Szenario widerspiegeln, das Sie erreichen möchten. In einem Team- oder Teamszenario können Sie beispielsweise die Chatberechtigungen festlegen, um alle Arten der Kommunikation zwischen Mitgliedern desselben Teams zuzulassen, die Audiokommunikation zwischen Mitgliedern des gegnerischen Teams zu blockieren und den Empfang von Text zwischen allen Personen in der Sitzung zuzulassen.

Das folgende Beispiel zeigt, wie die gesamte Kommunikation zwischen einem lokalen und einem Remote-Chat-Steuerelement aktiviert wird. Die Variable localChatControlA verweist auf ein gültiges PartyLocalChatControl Objekt, während remoteChatControlB auf ein gültiges PartyChatControl Objekt verweist, das ein Chat-Steuerelement auf einem Remotegerät darstellt.

PartyChatPermissionOptions allOptions = PartyChatPermissionOptions::SendAudio | PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText;
localChatControlA->SetPermissions(remoteChatControlB, allOptions);

Notiz

Beachten Sie, dass Chatberechtigungen nur lokal gelten. Im vorherigen Beispiel erfolgt die vollständige bidirektionale Kommunikation nur, wenn remoteChatControlB remote konfiguriert ist, um die gesamte Kommunikation mit zuzulassen. localChatControlA

Muting

Spiele haben auch die Möglichkeit, ausgehende Audiodaten (PartyLocalChatControl::SetAudioInputMuted()) sowie eingehende Audiodaten aus der Remotechatsteuerung (PartyLocalChatControl::SetIncomingAudioInputMuted()) stummzuschalten. Auf die Zustände dieser Stummschaltungen kann über ihre jeweiligen Getter zugegriffen werden und werden auch durch die von PartyLocalChatControl::GetChatIndicator() und PartyLocalChatControl::GetLocalChatIndicator()zurückgegebenen Chatindikatoren widergespiegelt.

Stummschaltungen sind besonders nützlich, um dem Spieler eine art vorübergehende Kontrolle zu geben, ohne die Chatberechtigungen ändern zu müssen, die Sie zu Beginn der Spielsitzung möglicherweise festgelegt haben.

Push-to-Talk

Push-to-Talk sollte mithilfe von lokalem Stummschalten implementiert werden. Rufen Sie auf PartyLocalChatControl::SetAudioInputMuted(false) , um Sprache zuzulassen und PartyLocalChatControl::SetAudioInputMuted(true) einzuschränken.

Teams

Angenommen, wir haben vier Benutzer, A, B, C und D, die sich jeweils auf ihrem eigenen separaten Gerät befinden. Benutzer A und Benutzer B befinden sich im Team Blue und Benutzer C und Benutzer D auf Team Red.

Auf dem Gerät von Benutzer A:

// Enable all communication with teammate B
localChatControlA->SetPermissions(chatControlB, PartyChatPermissionOptions::SendAudio | PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);

// Disable all communication with opponents
localChatControlA->SetPermissions(chatControlC, PartyChatPermissionOptions::None);
localChatControlA->SetPermissions(chatControlD, PartyChatPermissionOptions::None);

Übertragen

Angenommen, Benutzer A ist der Führende, der Aufträge erteilt, und Benutzer B, C und D kann nur lauschen.

Auf dem Gerät von Benutzer A:

localChatControlA->SetPermissions(chatControlB, PartyChatPermissionOptions::SendAudio);
localChatControlA->SetPermissions(chatControlC, PartyChatPermissionOptions::SendAudio);
localChatControlA->SetPermissions(chatControlD, PartyChatPermissionOptions::SendAudio);

Auf dem Gerät von Benutzer B:

localChatControlB->SetPermissions(chatControlA, PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);
localChatControlB->SetPermissions(chatControlC, PartyChatPermissionOptions::None);
localChatControlB->SetPermissions(chatControlD, PartyChatPermissionOptions::None);

Auf dem Gerät von Benutzer C:

localChatControlC->SetPermissions(chatControlA, PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);
localChatControlC->SetPermissions(chatControlB, PartyChatPermissionOptions::None);
localChatControlC->SetPermissions(chatControlD, PartyChatPermissionOptions::None);

Auf dem Gerät von Benutzer D:

localChatControlD->SetPermissions(chatControlA, PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);
localChatControlD->SetPermissions(chatControlB, PartyChatPermissionOptions::None);
localChatControlD->SetPermissions(chatControlC, PartyChatPermissionOptions::None);