最近在做一个需求是关于资源加密的,在Windows平台和Android上都比较顺利,在IOS上怎么都加载不出来。网上很多资料,但不知道什么原因总有些不准确的地方,不知道作者当时是怎么试成功的。这里是我自己实验的结果,这里做一个避坑的记录。
一、读取时添加前缀
IOS读取AssetBundle路径前需要加File:// (这里其实是三个杠,由于后面通常加application.XXX里面会再带一个杠所以一般写两个)
二、路径差异
application.datepath + “streamingAsset” 不等于 application.streamingAsset
不用加raw
android读取不用再加jar:file:///
写入时需要加:file:///
三、Strip Engine Code选项
这个选项上用于过滤无用代码资源的,Unity貌似会认为这些未被一挂载的是无用代码,最终不被打包进去,可以考虑场景中建个空物体挂上这些代码使其不被过滤或直接取消过滤。
四、包名不要用默认值
PC 和 Android包没并没有严格要求,基本都可以IOS则要注意。
五、版本号要向上叠加
IOS平台要求覆盖的版本号要向上叠加。
六、打包差异
在PC上运行时候基本上都能读出来,但是Android和IOS平台就要使用对应平台的AssetBundle了。
如下图可见IOS中一些路径:
1.红框中是代码写的路径,其下的是实际读出来的路径
附带有Demo在资源共享中,可自行下载。
https://download.csdn.net/download/ww1351646544/15156953