2017-01-20 4 views
0

Я получаю ошибку, когда пытаюсь использовать функцию PhotonNetwork.CreateRoom(). Я пытаюсь передать ей 6 аргументов.Создать номер Не перегружен Метод Ошибка

Мое единство версия 4.7.2 и эта функция от плагина облака фотонов.

CheckPlayerNameAndRoom(); 
PhotonNetwork.player.name = playerName; 
Hashtable setMapName = new Hashtable(); 
setMapName["MapName"] = allMaps[selectedMap].mapName; 
setMapName["RoundDuration"] = roundDuration; 
setMapName["GameMode"] = gameMode; 
string[] exposedProps = new string[3]; 
exposedProps[0] = "MapName"; 
exposedProps[1] = "RoundDuration"; 
exposedProps[2] = "GameMode"; 
//Create new Room 
PhotonNetwork.CreateRoom(newRoomName, true, true, maxPlayers, setMapName, exposedProps); 
+2

Было бы полезно увидеть сообщение об ошибке, поскольку оно отображается, просто скопируйте/вставьте его. – Jecoms

ответ

3

Это просто означает, что вы передаете неправильные параметры функции CreateRoom.

Согласно фотонам documentation, существует 3 перегрузки функции CreateRoom.

static bool CreateRoom (string roomName) 

static bool CreateRoom (string roomName, RoomOptions roomOptions, TypedLobby typedLobby) 

static bool CreateRoom (string roomName, RoomOptions roomOptions, TypedLobby typedLobby, string[] expectedUsers) 

Ни одна из этих функций не принимает bool или 6 параметров. Всегда проверяйте документацию, когда вы сталкиваетесь с такой проблемой.

Ниже приведен пример того, как использовать каждый метод перегрузки.

string newRoomName = "AloneWolf"; 

if(CreateRoom (newRoomName)) 
{ 
    //Success 
} 

Или

string newRoomName = "AloneWolf"; 
RoomOptions roomOptions = new RoomOptions(); 
TypedLobby typedLobby = new TypedLobby(); 

if(CreateRoom (newRoomName, roomOptions, typedLobby)) 
{ 
    //Success 
} 

Или

string newRoomName = "AloneWolf"; 
RoomOptions roomOptions = new RoomOptions(); 
TypedLobby typedLobby = new TypedLobby(); 
string[] expectedUsers = { "AloneWolf","OtherUsers"}; 

if(CreateRoom (newRoomName, roomOptions, typedLobby, expectedUsers)) 
{ 
    //Success 
} 
0

Спасибо за ваш ответ я пишу этот код

Hashtable roomProps = new Hashtable() { { "MapName", allMaps[selectedMap].mapName }, { "RoundDuration", roundDuration },{ "GameMode", gameMode } }; 
 
\t \t \t \t string[] roomPropsInLobby = { "MapName", "RoundDuration" ,"GameMode" }; 
 
\t \t \t \t RoomOptions roomOptions = new RoomOptions(); 
 
\t \t \t \t roomOptions.customRoomProperties = roomProps; 
 
\t \t \t \t roomOptions.customRoomPropertiesForLobby = roomPropsInLobby; 
 
\t \t \t \t roomOptions.isVisible = true; 
 

 
\t \t \t \t roomOptions.maxPlayers = (byte)maxPlayers; 
 
\t \t \t \t PhotonNetwork.CreateRoom(newRoomName,roomOptions,TypedLobby.Default);

Это работает, люди могут присоединиться к игре и увидеть максимальное количество игроков в комнате. Еще раз спасибо вам столько удачи.

Смежные вопросы