免责声明:我对Unity \ C#networking
几乎一无所知位于Airconsole / scripts / editor / Extensions.cs的Unity air控制台包中的脚本包含方法GetLocalAddress()。
此方法在我的Mac(MacOS 10.12.1,Unity 5.5.0f3)上导致运行时错误,但在朋友的Windows机器(Win10,Unity 5.5.0f3)上却没有。
错误是:SocketException:没有这样的主机,System.Net.Dns.GetHostByName(System.String hostName)
导致错误的行是:
foreach (IPAddress ip in Dns.GetHostEntry(Dns.GetHostName()).AddressList) {
Dns.GetHostName()返回我的计算机名称:“MacMini”,但将其作为参数传递给Dns.GetHostEntry()会导致错误。
要在开发过程中解决这个问题,我已经用一行替换了GetLocalAddress()方法中包含的代码:
return UnityEngine.Network.player.ipAddress.ToString();
并且Unity项目在我的浏览器中正确运行虚拟控制器。
关于什么会导致这个问题的任何想法?
答案 0 :(得分:1)
免责声明 - 我不太相信这会有所帮助,但我遇到了同样的问题。
事实证明它在uni网络中无法工作,当我将手机用作热点时,它没有问题。
我认为问题在于从uni网络获取本地IP。我们最终通过建立我们自己的本地网络来解决这个问题,该网络通过使用相同uni网络的笔记本电脑连接到网络。它连接正常,但我们目前正遭受一些非常糟糕的滞后。
我希望这是一种帮助。