Relay서비스와 Lobby를 구현하다 보면 문뜩 Lobby의 요소를 꾸미고 싶을 때가 생깁니다!
예를 들면, 위와 같이 로비를 생성했을 때 방의 이름, 방의 지역, 방의 숫자와 같이 말이죠!
또는, 방테두리 색깔, 방의 Private 정보 등등을 커스터마이징 할 수 있습니다!!
코드
public async Task<Lobby> CreateLobby(string requesterUasId, string lobbyName, int maxPlayers, bool isPrivate, Dictionary<string, PlayerDataObject> hostUserData, string limitToRegion)
{
var options = LobbyRegionToCreatOptions(limitToRegion);
CreateLobbyOptions createOptions = new CreateLobbyOptions
{
IsPrivate = isPrivate,
Player = new Player(id: requesterUasId, data: hostUserData),
Data = options
};
return await LobbyService.Instance.CreateLobbyAsync(lobbyName, maxPlayers, createOptions);
}
개발자가 CreateLobby함수를 통해 LobbyService.Instance.CreateAsync 함수를 호출하는 과정입니다!
LobbyService.Instance.CreateAsync 함수에는 로비이름과 최대 플레이어 수, 그리고 방의 옵션을 설정할 수 있습니다!
저는 여기서 방의 옵션에는 총 3가지를 사용하였습니다!
- 1. IsPrivate
- 2. Player정보
- 3. Data
여기서 저희가 커스터마이징 할 수 있는 옵션은 Data이며, Data는 Dictinary<string, DataObejct> 구조로 이루어져 있습니다!
LobbyRegionToCreatOptions
함수같은 경우 방의 Region을 커스터마이징 하기 위해 만든 옵션이므로 직접 제작한 함수입니다!
Dictionary<string, DataObject> LobbyRegionToCreatOptions(string limitToRegion)
{
Dictionary<string, DataObject> options = new Dictionary<string, DataObject>();
options.Add("LobbyRegion", new DataObject(DataObject.VisibilityOptions.Public, limitToRegion));
return options;
}