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多人联机(Mirror插件)有史以来最全的基础教程(附加报错提示和官方手册修改)
Unity学习Unity获取Android手机局域网(WIFI)IP