所以我会尽力发布这个。我之前在团结论坛上问过这个问题,但我还没有找到答案,如果你需要的话,这里是link。
我有一个服务器端广播的工作演示,客户端接收消息解析并使用该信息连接到服务器。
NetworkTransport.Init();
NetworkTransport.AddHost(defaultTopology, PORT)
NetworkTransport.StartBroadcastDiscovery(id,broadcastport,..,..)
NetworkTransport.Receive(..,..)
NetworkTransport.Connect(..,..)
等。如果你愿意的话,我可以继续进一步详细介绍代码,但就PC的工作而言,我认为代码很好。
当我尝试使用 PC作为服务器,Android作为客户端时,如果Android设备充当客户端,他不接收来自服务器的广播但我可以手动连接(i知道我的本地机器的IP),我可以发送和接收消息。(这是好的,除了广播问题很好修复)
如果 Android充当服务器和PC客户端,则PC会接收广播,但无法自动或手动连接到Android。
我用2个Androids进行了测试,结果也不好。 客户端没有收到广播,如果我尝试手动连接,服务器没有收到连接事件。主要目标是使用2个机器人。
我搜索了网络和Unity的问题,但我发现有些人在谈论Android Manifest,但没有说明究竟要做什么。如果你可以指出我正确的方向,我会赞成。
也许Android 6权限与此有关吗?
我个人认为android无法接受任何直到被连接,所以当他充当客户端他不接收广播但可以连接然后工作正常,但作为服务器他不能接收连接。
也许在Android端口上有什么关系?我通常使用25001。
使用Unity 5.3.5f1
感谢和抱歉我的英语不好。
修改 我改为Unity 5.4来检查Android 6的permisions并且也没有工作。 如果你想尝试,你有一个演示here 是与另一个项目的隔离,所以也许你找到了代理人和其他东西。
答案 0 :(得分:0)
是的,它确实是Android Manifest。我认为没有其他原因导致这种情况无效。在Android 6.0上更改了方法权限查询。您必须下载Unity 5.4才能解决此问题。