Unity NetworkManager组件,局域网的IP?

Posted

技术标签:

【中文标题】Unity NetworkManager组件,局域网的IP?【英文标题】:Unity NetworkManager component, IP for LAN? 【发布时间】: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://***.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 是否有会阻止服务器生成的防火墙。 【参考方案1】:

如果使用 Unity 提供的默认 Network Manager,您必须确保网络地址字段包含要用作服务器的机器的本地 IP(由您的路由器提供)。在您的情况下,此 IP 等于 192.168.0.26,可以在机器的网络配置中找到。 从现在开始,每个客户端/服务器实例都必须使用这个 IP 地址才能知道连接到哪里。 我个人在创建服务器时建议使用 networkManager.StartHost(); 而不是 networkManager.StartServer();,因为您的服务器可能还需要一个客户端。如果不是这种情况,请忽略此声明。 最后,如果您能胜任这项任务,您可以考虑创建自己的 Custom Networking Manager,它继承自 Network Manager。这样您就可以更好地控制应用的网络。

【讨论】:

这就是答案! :) @Fattie 谢谢! 谢谢。有趣的是,没有人能够回答这个问题 ..***.com/questions/51381964 ..我想正如你所说的答案只是“不,不可能”:/ @Fattie 不一定,我有一个正在处理网络的项目,我希望明天进行测试,如果我得到任何结果,我会将它们作为具体答案发布。

以上是关于Unity NetworkManager组件,局域网的IP?的主要内容,如果未能解决你的问题,请参考以下文章

Unity中实现局域网—Multiplayer HLAPI

unity多人联机(Mirror插件)有史以来最全的基础教程(附加报错提示和官方手册修改)

NetworkManager网络通讯_问题汇总

Unity学习Unity获取Android手机局域网(WIFI)IP

Unity学习Unity获取Android手机局域网(WIFI)IP

Unity学习Unity获取Android手机局域网(WIFI)IP