Unity:本地(LAN)MatchMaking错误

时间:2017-04-21 14:52:34

标签: networking unity3d unity-networking unity3d-unet unet

我正在尝试创建一个简单的多人游戏。我已经设置了一个配对系统,当设备与互联网连接时它工作正常,即成功创建了一个在线大厅。但是当我尝试在没有互联网接入的本地网络上创建一个大厅时,没有任何反应。

以下是我用于托管游戏的代码:

void Start()
{
    netManager = NetworkManager.singleton;
    if(netManager.matchMaker == null)
    {
        netManager.StartMatchMaker();
    }

    roomName = "MyGameRoom";
    roomSize = 12;
}

public void CreateRoom()
{
    if (roomName != "" && roomName != null)
    {
        Debug.Log("Creating Room:" + roomName);
        netManager.matchMaker.CreateMatch(roomName, roomSize, true, "", "", "", 0, 0, netManager.OnMatchCreate);
    }
}

现在,如果设备已连接到互联网,则游戏将成功托管。但是,如果设备连接到没有互联网服务的wifi,则在调用CreateRoom方法时没有任何反应。

CreateRoom()方法与按钮的onClick事件相关联。

我是团结网络的新手,希望有人能指出我做错了什么。 感谢。

1 个答案:

答案 0 :(得分:1)

基本MatchMaking服务基于连接到Unity MatchMaker服务器(https://mm.unet.unity3d.com),此服务器位于互联网上,这意味着如果您未连接到互联网,则无法连接到它。解决方案是使用NetworkDiscovery让您的服务器通过网络发送广播消息,以便客户端可以“听到”广播,然后连接到发送者。如果您想要样本,请查看thread