0

免责声明:我对 Unity\C# 网络几乎一无所知

位于 Airconsole/scripts/editor/Extensions.cs 的 Unity 空中控制台包中的脚本包含方法 GetLocalAddress()。

这种方法在我的 Mac(MacOS 10.12.1,Unity 5.5.0f3)上会导致运行时错误,但在朋友的 Windows 机器(Win10,Unity 5.5.0f3)上不会。

错误是: SocketException: No such host is known, 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 项目在我的浏览器中正常运行的虚拟控制器运行。

关于什么会导致这个问题的任何想法?

4

1 回答 1

1

免责声明 - 我不太相信这会有所帮助,但我遇到了同样的问题。

事实证明,它在 uni 网络中不起作用,当我将手机用作热点时,它没有问题。

我认为问题在于从 uni 网络获取本地 ip。我们最终通过建立自己的本地网络解决了这个问题,该网络通过笔记本电脑使用相同的 uni 网络连接到网络。它连接得很好,但是我们目前正遭受一些非常糟糕的延迟。

我希望这是某种帮助。

于 2017-03-23T17:25:34.263 回答