所以我正在使用UNET进行多人游戏。 我没有使用Unity Multiplayer Service。 我正在使用资产商店中的网络大厅示例。
我的流程如下: 您创建一个房间(对我的服务器的HTTP请求,该请求使用Player的IP在数据库上创建一条记录)。我通过https://api.ipify.org?format=json上的GET请求获得了IP。 到目前为止,一切都很好,主持人可以选择角色并等待其他玩家连接。
在客户端(我的游戏的构建)上,当按列表服务器(它是数据库中的json)时,我可以看到主机创建的服务器。
因此,当您单击创建房间按钮时:
public void OnClickCreateGame()
{
lobbyManager.StartHost();
}
-LobbyManager-
public override void OnStartHost()
{
base.OnStartHost();
ChangeTo(lobbyPanel);
backDelegate = StopHostClbk;
SetServerInfo("Hosting", ip);
}
在列出的服务器上单击加入时:
public void JoinMatch()
{
lobbyManager.ChangeTo(lobbyManager.lobbyPanel);
lobbyManager.networkAddress = ip; //SET FROM DATABASE, IS CORRECT
lobbyManager.StartClient();
lobbyManager.backDelegate = lobbyManager.StopClientClbk;
lobbyManager.DisplayIsConnecting();
lobbyManager.SetServerInfo("Connecting...", lobbyManager.ip);
}
当我按加入时,它只是说正在连接...然后踢客户。
我重复一遍,我不想使用Unity的多人游戏服务。
非常感谢您。