【问题标题】:Unity NetworkManager component, IP for LAN?Unity NetworkManager组件,局域网的IP?
【发布时间】:2018-07-17 01:27:52
【问题描述】:

在 Unity 的新网络中,我有两台计算机并排在同一个 WiFi 网络上。

使用NetworkManager,我正在尝试通过 LAN 将它们联网。

待定,与全球互联网网络完全无关,与本地主机无关。

左边是192.168.0.26

右边是192.168.0.120

假设我们希望左边的服务器作为服务器,即简单地使用

    Debug.Log("I'm now a server");
    networkManager.StartServer();

假设我们希望合适的人成为客户(所以,StartClient()。)

TBC 我只是在两台电脑上查看了ipConfig/etc,得到当前本地IP。

我绝对确保两台机器都为 Unity 编辑器打开了防火墙(令人恼火的问题)。

事实上,您使用的是哪个“NetworkAddress”(见图)?在两台机器上?

有四种排列。

我只是无法让他们通过 LAN 连接 - 网络地址应该是什么?


脚注:任何在这里使用谷歌搜索的人都请注意这个关于 Unet 的关键提示 ...https://stackoverflow.com/a/51759299/294884

【问题讨论】:

  • Server(Mac) 端应该放 localhost 或 192.168.0.26。客户端(PC)应该放服务器的ip,也是192.168.0.26。
  • localhost 是完全错误的。对不起。
  • 首先,每个实例(客户端/服务器)都应该有相同的 IP 地址。另外如果你想如果你做一个客户端的实例,他不知道服务器的IP,他怎么能连接?最后,您应该使用服务器机器本地分配的 IP 地址(由路由器),在您的情况下为 192.168.0.26。我建议使用networkManager.StartHost(); 而不是networkManager.StartServer();,因为您的服务器可能还需要一个客户端。如果不是这种情况,请忽略它。
  • 嗨@Hristo - 解释清楚,我会试试的!
  • 如果您仍然遇到连接问题,请考虑从 Mac/PC 切换客户端/服务器,因为我不知道 Mac 是否有会阻止服务器生成的防火墙。

标签: unity3d networking


【解决方案1】:

如果使用 Unity 提供的默认 Network Manager,您必须确保网络地址字段包含要用作服务器的机器的本地 IP(由您的路由器提供)。在您的情况下,此 IP 等于 192.168.0.26,可以在机器的网络配置中找到。
从现在开始,每个客户端/服务器实例都必须使用这个 IP 地址才能知道连接到哪里。

我个人在创建服务器时建议使用 networkManager.StartHost(); 而不是 networkManager.StartServer();,因为您的服务器可能还需要一个客户端。如果不是这种情况,请忽略此声明。

最后,如果您能胜任这项任务,您可以考虑创建自己的 Custom Networking Manager,它继承自 Network Manager。这样您就可以更好地控制应用的网络。

【讨论】:

  • 这就是答案! :)
  • @Fattie 谢谢!
  • 谢谢。有趣的是,没有人能够回答这个问题 ..stackoverflow.com/questions/51381964 ..我想正如你所说的答案只是“不,不可能”:/
  • @Fattie 不一定,我有一个正在处理网络的项目,我希望明天进行测试,如果我得到任何结果,我会将它们作为具体答案发布。
猜你喜欢
  • 2019-11-04
  • 2019-11-04
  • 1970-01-01
  • 2016-06-15
  • 1970-01-01
  • 2012-01-10
  • 2015-11-12
  • 2011-07-21
  • 2023-03-10
相关资源
最近更新 更多