46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
|
|
using ClientState = ExitGames.Client.Photon.LoadBalancing.ClientState;
|
|
using RoomInfo = ExitGames.Client.Photon.LoadBalancing.RoomInfo;
|
|
using RoomOptions = ExitGames.Client.Photon.LoadBalancing.RoomOptions;
|
|
|
|
public class ButtonCreateLobby : ButtonOnClick {
|
|
|
|
public override void OnClick() {
|
|
if (GameTransition.Instance.state == GameState.Multiplayer){
|
|
GameTransition.Instance.state = GameState.ConnectionInProgress;
|
|
Debug.Log("Creating room");
|
|
|
|
var ro = new RoomOptions();
|
|
ro.EmptyRoomTtl = 1000;
|
|
ro.CleanupCacheOnLeave = true;
|
|
ro.PlayerTtl = 500;
|
|
ro.PublishUserId = false;
|
|
ro.MaxPlayers = 2; // TODO: Expose this better
|
|
|
|
string roomCode = string.Empty;
|
|
var roomList = NetworkManager.net.RoomInfoList.Keys.ToList();
|
|
do {
|
|
roomCode = string.Format("{0}{1}{2}{3}", RandomDigit(), RandomDigit(), RandomDigit(), RandomDigit());
|
|
} while (roomList.Contains(roomCode));
|
|
|
|
LobbySetup.Instance.Setup();
|
|
|
|
var success = NetworkManager.net.OpCreateRoomWithProperties(roomCode, ro, ExitGames.Client.Photon.LoadBalancing.TypedLobby.Default);
|
|
if (success) {
|
|
Debug.Log("Room created");
|
|
} else {
|
|
Debug.Log("Failed to connect to room");
|
|
}
|
|
}
|
|
}
|
|
|
|
private int RandomDigit() {
|
|
return Random.Range(0, 10);
|
|
}
|
|
|
|
}
|