유니티(Unity) 로비 삭제 및 떠나기 (#Lobby)

#1. Delete a lobby

로비 호스트는 로비를 삭제할 수 있으며 삭제된 대기실은 더이상 참여할 수 없습니다.

삭제된 로비는 쿼리에 표시되지 않으며 삭제된 로비를 대상으로 하는 모든 접근은 실패하게 됩니다

 

클라이언트는 언제든지 로비에서 제거될 수 있음을 예상해야 합니다

로비가 삭제된다거나, 호스트가 플레이어를 로비에서 강퇴한다거나, 릴레이 연결이 해제 된다거나 등

클라이언트는 특정 로비를 대상으로 하는 모든 API 호출이 실패할 수 있음을 예상하고 그에 맞게 처리해야 합니다

try
{
    await LobbyService.Instance.DeleteLobbyAsync("lobbyId");
}
catch (LobbyServiceException e)
{
    Debug.Log(e);
}

#2. Leave a lobby

플레이어가 로비에서 나가면 플레이어 ID가 플레이어 목록에서 제거됩니다

이때, 호스트 플레이였다면 남아 있는 플레이어중 한 명이 호스트 플레이어가 됩니다

 

RemovePlayerAsync API 호출은 자기 자신 ID 뿐만 아니라 다른 플레이어의 ID도 지정할 수 있습니다

로비의 마지막 플레이어가 나가면 로비가 자동으로 삭제됩니다!

  try
{
            //Ensure you sign-in before calling Authentication Instance
            //See IAuthenticationService interface
            string playerId = AuthenticationService.Instance.PlayerId;
            await LobbyService.Instance.RemovePlayerAsync("lobbyId", playerId);
}
catch (LobbyServiceException e)
{
            Debug.Log(e);
}