다음을 통해 공유


PlayFab 파티 채팅 권한 및 음소거

개요

PlayFab 파티에서는 플레이어가 서로 통신하는 방식을 세밀하게 제어할 수 있습니다. PlayFab 파티는 팀 또는 채널을 지정하는 대신 각 채팅 컨트롤 쌍 간의 명시적 사용 권한을 정의해야 합니다. 채팅 사용 권한 시스템을 사용하면 모든 채팅 컨트롤 쌍 간에 주고 받는 음성 통신이나 문자 통신을 제어할 수 있습니다.

채팅 권한

채팅 컨트롤 간의 통신은 기본적으로 사용하지 않도록 설정되며, 게임에서 각 채팅 컨트롤 쌍 간의 올바른 PartyChatPermissionOptions을(를) 설정해야 합니다. 채팅 권한은 달성하려는 시나리오에 따라 결정되는 각 채팅 컨트롤 간의 관계를 반영해야 합니다. 예를 들어 팀 대 팀 시나리오에서 동일 팀 멤버 간의 모든 유형의 통신을 허용하고, 상대 팀 멤버 간의 오디오 통신을 차단하고, 세션의 모든 사용자 간에 문자를 주고 받도록 채팅 권한을 설정할 수 있습니다.

다음 예에서는 로컬 및 원격 채팅 컨트롤 간의 모든 통신을 사용하도록 설정하는 방법을 보여 줍니다. localChatControlA 변수는 유효한 PartyLocalChatControl 개체를 가리키고, remoteChatControlB 변수는 원격 디바이스의 채팅 컨트롤을 나타내는 유효한 PartyChatControl 개체를 가리킵니다.

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

참고 항목

채팅 권한은 로컬에만 적용됩니다. 이전 예제에서 전체 양방향 통신은 remoteChatControlB이(가) localChatControlA(으)로 모든 통신을 허용하도록 원격으로 구성된 경우에만 발생합니다.

음소거

또한 게임에서 원격 채팅 컨트롤(PartyLocalChatControl::SetIncomingAudioInputMuted())을 통해 나가는 오디오(PartyLocalChatControl::SetAudioInputMuted())와 들어오는 오디오를 음소거할 수 있습니다. 음소거 상태는 해당 getter를 통해 액세스할 수 있으며 PartyLocalChatControl::GetChatIndicator()PartyLocalChatControl::GetLocalChatIndicator()에 의해 반환되는 채팅 표시기를 통해서도 반영됩니다.

음소거는 게임 세션의 시작 부분에서 설정한 채팅 권한을 변경하지 않고 플레이어에게 일부 임시 컨트롤을 제공하는 데 특히 유용합니다.

말하려면 누르기

말하려면 누르기는 로컬 음소거를 사용하여 구현되어야 합니다. PartyLocalChatControl::SetAudioInputMuted(false)을(를) 호출하면 음성 및 PartyLocalChatControl::SetAudioInputMuted(true)을(를) 하여 제한할 수 있습니다.

4명의 사용자, A, B, C 및 D가 별도의 디바이스에 있다고 가정합니다. 사용자 A와 사용자 B는 파란색 팀에 있고 사용자 C와 사용자 D는 빨간색 팀에 있습니다.

사용자 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);

브로드캐스트

사용자 A가 명령을 내리는 리더이고 사용자 B, C 및 D는 듣기만 할 수 있다고 가정합니다.

사용자 A의 디바이스:

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

사용자 B의 장치:

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

사용자 C의 장치:

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

사용자 D의 장치:

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