0

我正在尝试创建一个简单的多人游戏。我已经设置了一个配对系统,当设备连接到互联网时它工作正常,即成功创建了一个在线大厅。但是,当我尝试在无法访问 Internet 的本地网络上创建一个大厅时,什么也没有发生。

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

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);
    }
}

现在,如果设备已连接到 Internet,则游戏已成功托管。但是,如果设备连接到没有互联网服务的 wifi,CreateRoom则调用该方法时不会发生任何事情。

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

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

4

1 回答 1

1

基本的 MatchMaking 服务基于连接到 unity MatchMaker 服务器 ( https://mm.unet.unity3d.com ) 并且该服务器位于互联网上,这意味着如果您没有连接到它,您将无法连接到它互联网。解决方案是使用NetworkDiscovery,它让您的服务器通过网络发送广播消息,以便客户端可以“听到”广播,然后连接到发送者。如果你想要一个样本检查这个线程

于 2017-04-21T15:30:49.963 回答