Я создаю многопользовательскую шахматную игру. Пользователь может играть в онлайн-матчах, сделав ставку на определенную сумму (допустим, 500, 1000, 1500 и c). Пользователь будет размещен только против места, которое ищет ту же сумму ставки. Я создаю комнату с пользовательскими свойствами, установленными как
private void CreateRoom()
{
Debug.Log("Creating Room Now");
int randomRoomNumber = Random.Range(0, 10000);
int bet = MenuHandler.instance.betAmount;
if (bet < 500)
bet = 500;
RoomOptions roomOps = new RoomOptions() { IsVisible = true, IsOpen = true, MaxPlayers = (byte)roomSize, CustomRoomProperties = new ExitGames.Client.Photon.Hashtable() { { "Bet", bet } } };
PhotonNetwork.CreateRoom("Room" + randomRoomNumber, roomOps);
Debug.Log(randomRoomNumber);
}
, очевидно, она создаст комнату, если подобной комнаты не существует, и присоединится к игроку 1.
, так что теперь игрок 1 находится в номер. Теперь, чтобы игрок 2 присоединился к комнате,
int bet = MenuHandler.instance.betAmount;
if (bet < 500)
bet = 500;
Hashtable expectedCustomRoomProperties = new Hashtable() { { "Bet", bet } };
PhotonNetwork.JoinRandomRoom(expectedCustomRoomProperties, (byte)roomSize);
Но он не соединит игрока 2 с комнатой игрока 1 вообще. Он создает свою собственную комнату (как OnJoinRoomFailed создает комнату, если она не существует).
Я действительно не уверен, что здесь не так. Я проверил документацию и все! Вот как они это сделали. Может кто-нибудь помочь мне здесь?
PS: Я выполнил отладки, и суммы ставок верны и установлены правильно. Они просто не будут подключаться к одной комнате.
Отладка с телефона: - Joined Room4068 with Bet of (System.String)Bet=(System.Int32)1500, (System.String)curScn=(System.String)RoomWaitingRoom
Отладка из редактора Unity: - Joined Room9945 with Bet of (System.String)Bet=(System.Int32)1500
Я запуск одного экземпляра с телефона и второго экземпляра в редакторе Unity и воспроизведение одного экземпляра на телефоне и втором не проблема, я думаю, потому что они успешно соединяются, если я просто поставлю JoinRandomRoom();