为了能够再次提交到应用程序商店(对于已发布的游戏),我们必须让IPv6工作。因此我们将Unity更新为5.3.5p2版本(可用的最新修补版本)
我们重新处理了所有的网络接口(我们过去常常使用经典的http请求进行后端服务器com和套接字连接以进行资产下载)我们使用UnityEReine的UnityWebRequest,DownloadHandler和UploadHandler交换了所有内容.Experimental.Networking
在编辑器和Android上一切正常,但对于iOS,它只是......崩溃。
我们正在使用:Unity 5.3.5p2 xCode 7.2 和iPad2与iOS 9.3.2 构建设置: IL2CPP 通用架构(最低iOS 7.1) API级.Net 2.0 剥离引擎代码设置为OFF AOT-Compile选项设置为:mint-trampoline 512(我们将它用于单脚本编写后端) 在Xcode上: Bitcode被禁用 优化级别设置为(用于发布和调试):无[-O0] 以下是游戏运行时我们在控制台上遇到的错误:
无法找到方法GetProgress [UnityEngine.dll] UnityEngine.Experimental.Networking.DownloadHandler 。 。 无法找到方法ReceiveContentLength [UnityEngine.dll] UnityEngine.Experimental.Networking.DownloadHandler 。 。 [项目名称]是通过优化编译的 - 步进可能表现得很好 奇怪;变量可能无法使用。
(我们非常简单地使用托管静态缓冲区实现了DownloadHandlerScript)
当我们使用mono构建脚本后端时,一切正常。但IL2CPP对我们来说是强制性的。 谢谢你的帮助。
答案 0 :(得分:0)
当我们使用mono构建脚本后端时,一切正常。但 IL2CPP对我们来说是强制性的。
您从UnityWebRequest
调用的函数很可能尚未在IL2CPP方面实现,或者这是一个普通的错误。
请注意,您使用UnityWebRequest
命名空间中的UnityEngine.Experimental
,这显然是UnityWebRequest
的实验版本尚未成熟。您需要下载Unity 5.4的最新版Unity。在5.4中,UnityWebRequest
被移动到UnityEngine.Networking
命名空间,并且在该新版本中修复了更多错误。下载Unity的5.4.0b21 here。
如果不起作用,请使用Unity WWW
API而不是UnityWebRequest
。 > = 5.3版本中的IPv6 safe。如果在将Unity更新为5.4后UnityWebRequest
不起作用,也会报告错误报告。
答案 1 :(得分:0)
这可能是托管代码剥离的问题。我在Unity论坛上发布了一个可能的工作:
http://forum.unity3d.com/threads/unity-ios-and-ipv6-support.404938/#post-2670944