Unity 2018.2-UNet对接仅适用于LAN

时间:2018-08-24 13:05:46

标签: c# unity3d unity3d-unet matchmaking

我正在尝试基于Brackeys的教程来实现UNET对接系统。

我已经在我的Unity帐户中启用了多人游戏服务并启用了该服务。

当我尝试创建一个匹配项并从局域网中的另一台PC上找到它时,它会完美工作。

当我尝试创建匹配并从LAN以外的另一台PC上找到它时,在匹配列表中看不到匹配。

我已经搜索了文档和谷歌,但未找到任何相关信息。

有人知道吗?

顺便说一下,这是我的JoinRoom脚本。

从回调函数返回成功,但房间列表返回为空。

public void onDrawFrame(GL10 gl) {
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
    while(true)
    {
        Log.e("GLThread", "draw");
    }
}

2 个答案:

答案 0 :(得分:0)

我实际上发现了问题所在。首先,您必须刷新配置并确保云配置处于工作状态并启用了多人游戏服务,有时它会随机关闭。然后,您应该直接通过命名它来选择配对服务器,例如,我使用的是欧洲服务器eu1-mm.unet.unity3d.com。如果您仅使用mm.unet.unity3d.com,则它可以将您的游戏托管在与您的客户。而且不同服务器中的玩家不会看到对方。或者,您可以启动自己的本地服务器并通过端口转发IP,然后将其用作客户端的主机IP。除非您拥有动态IP,否则您可以使用诸如no-ip之类的服务来获取IP的静态域。我现在正在使用这种方法,而且它是免费的。

答案 1 :(得分:0)

整个问题与Unity MM服务器负载均衡器有关。

我的代码仅在我的局域网中工作,因为服务器是在同一美国地区创建的。

发生这种情况是因为我的局域网与加拿大建立了VPN。

当我从LAN以外的PC连接时,我被引导到另一个区域,这就是为什么找不到由LAN机器创建的服务器的原因。

部署到我的LAN之外的两台计算机后,它们都可以创建并连接另一台服务器。