【发布时间】:2016-02-24 05:15:47
【问题描述】:
我正在尝试在 Android 智能手机上以 Unity 和 C# 接收设备的标准网关,但我无法修复它。
这就是我问是否有可能在使用 Unity 和 C# 的 Android 智能手机上找到网关的原因。
我已经尝试过这个,它可以在 Unity 编辑器中使用:
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
GatewayIPAddressInformationCollection addresses = adapterProperties.GatewayAddresses;
if (addresses.Count > 0)
{
foreach (GatewayIPAddressInformation address in addresses)
{
if (address.Address.ToString() != "0.0.0.0")
{
Debug.Log("Gateway: " + address.Address.ToString());
}
}
}
}
【问题讨论】:
-
此解决方案存在一个问题。在 Android 中找不到 DLL,如果我想将 DLL 文件添加为引用,则 Microsoft 表示无法添加该引用,因为它可能无法访问或者是有效的程序集/COM 组件。 (所以它只适用于我的桌面)
-
我确实在 adb logcat 中收到此错误。也许这会对你有所帮助?
I/Unity (14783): EntryPointNotFoundException: getifaddrs I/Unity (14783): at (wrapper managed-to-native) System.Net.NetworkInformation.LinuxNetworkInterface:getifaddrs (intptr&) -
Entry Point not found 意味着名称错误或方法/函数不是公共的(也是静态的和/或外部的)。检查函数名 getifaddrs 以确保它正确,包括大小写值。
标签: c# android unity3d gateway