找回密码
 立即注册
查看: 484|回复: 0

Unity BackgroundDownload 后台下载

[复制链接]
发表于 2022-3-9 16:39 | 显示全部楼层 |阅读模式
说明:这个插件主要用于移动平台热更资源后台下载的支持。本人只在安卓和IOS上使用过,Unity2019.4亲测可行。

插件地址:https://github.com/Unity-Technologies/BackgroundDownload

支持平台: Android, iOS and 通用的windows 平台. 插件在UnityEditor 下无法工作的。

安装:1.Unity 2019.4 及以上的版本,官方推荐使用from GIT 或者加载本地插件包的方式。推荐这些方式应该是可以自动合并AndroidManifest 的原因。

2.Unity2019.4以下的版本可以通过把插件中Runtime 目录下的文件拷贝到Asset 目录下,然后自己合并一下AndroidManifest(如果项目里面只有这一个插件,可以不合并,但基本不太可能)。

3.其实2019.4的版本也可以自己拷贝,然后自己合并AndroidManifest,也可以正常使用。
安卓平台


安装好插件后,进入使用阶段。如果你是通过拷贝的方式安装的插件,需要自己合并一下AndroidManifest。

1.根据下图找到插件的AndroidManifest.xml 文件打开。


2.把下图红框部分拷贝的项目的AndroidManifest.xml 文件。记得合并AndroidManifest.xml 文件,不然在真机上下载会报错:"Invalid value for visibility 2 in Android" 。


3.ProjectSetting --> Player --> OtherSettings 中的WritePermission 设置为External(SDCard)


4.到了这里已经设置完成了,是不是特别简单,之后我们就可以打包测试了。
IOS平台


不用设置,ios 平台一如既往的顺畅
插件使用


基本和官方的使用说明没什么区别。直接使用Start函数,传入下载的url(http/https) 和下载下来保存到本地的路径,即可开启下载。也可以使用自己创建下载配置进行下载,下载的资源会存放到 Application.persistentDataPath的目录下。
BackgroundDownload.Start(new Uri(DownloadUrl), DownloadPath))
这里需要注意的是下载路径不需要拼接 Application.persistentDataPath,因为插件内部拼接一次,所以我们只需要传自己的存放目录就行。如果外部也拼接了Application.persistentDataPath。ios 下载会有问题,android 是正常的。

例如:本地的资源的存放路径是“Application.persistentDataPath/game/img/xxx.png” ,参数的下载路径则是“game/img/xxx.png”。
实现原理


1.安卓是的实现原理是使用了android 的DownloadManager ,DownloadManager 会在系统后台开启下载任务。

2.iOS则是使用NSURLSession 实现的,这是ios7 的新特性。

具体API大家可以网上查阅,这里就不展开说了。简单来说这个插件使用简单且实用,大家可以娱乐的用起来。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 17:30 , Processed in 0.066310 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表