一、安装Addressable/添加资源分组
==================================================================
》安装包体
》打开编辑器,创建基本资源组分组管理,组名上右键菜单可重命名
》添加可寻址资源(可以拖拽设置,可以在inspector中设置)点击资源右键菜单可简化地址名字方便加载
==================================================================
二、配置自定义的网络服务器路径/构建本地iis服务
==================================================================
Local基本可以忽略在“资源组属性设置”中有具体说明为什么没有用。
通常自定义两个地址一个本地服务器测试地址,一个最终发布的远程服务器地址(最后手动拷贝到服务器)
一个用于本地更新功能测试,一个是正式发布后的软件更新地址(发布时需要修改为该地址)。
》》构建本地iis服务添加网站
.bundle application/octet-stream 以及 .hash
下面列出一些常用的 扩展名的 MIME类型。
如果不知道MIME类型 可以写通用的: application/octet-stream
还有一些规律如果是文本类的让IE可以直接打开的 MIME 可以为 text/扩展名
如果是音频打开的时候让windows自动播放的可以用 audio/扩展名
为网站添加mime类型
.json text/json
.unity3d application/octet-stream
.unityweb application/binary
==================================================================
三、资源组属性设置
==================================================================
======》资源类型大体上分为三类
》》第一种:随包体一起打包发布的资源(静态资源)(打包加载路径为Local)
这种资源是无法被更新的发布后会复制到项目的StreamingAssets目录下
这种资源分组设置就比较鸡肋(万年不改场景资源以及工具脚本等等),甚至不用打包也会随之发布
唯一值得注意的是可能需要动态加载的资源没有被场景引用,发布时会被忽略,如果不将资源打包需要将资源放到Resources文件中
==================================================================
(不要再使用该类资源)建议是要更新的就全从服务器下载,不更新就不要更新(实在不行就大版本替换)
》》第二种:随包体一起打包发布,而且需要检查更新(资源包体过大又不一定会经常更新的资源)
每次发布最新版本安装会带最新的资源包,不需要安装完成后还要更新。
用AB的时候设计过该类资源(一开始放在StreamingAssets目录下,然后将所有资源复制到平台更新的缓存目录,再删除StreamingAssets目录下的资源)
如果嫌麻烦也可以不设计该类资源全部放到第三种资源类型中去。
==================================================================
》》第三种:后期更新的资源不随包体一起打包发布需要从服务器下载更新。
为了更简单的使用资源更新系统,建议只配置这一类需要热更新的资源。
如果要换皮那就全用这种打包所有资源全整到服务器。
属性配置:
设置打包地址和远程服务器地址,可以是同一个文件(这样设置后不会再打包到Loacal地址)
建议用can change post release直接覆盖原始包不差那点,方便管理
Cache Clear Behavior:这里如果是Local的话我一般用默认第一个,如果是Remote的话,我通常会选择第二个,第二个意思就是如果有资源更新了,加载了新资源的时候就会把本地的旧资源删除掉,自测很好用,避免本地下载的旧资源堆积太多
Bundle Mode:我个人喜欢分开打包,这样的好处就是如果只是一个很小的资源需要热更,那么下载的时候就只需要下载这个小资源,不用下载很多不必要的资源,对用户体验会比较好
==================================================================
四、远程更新设置
==================================================================
(什么时候更新需要自己控制就需要勾选下面的选项,这个再做webgl程序时尤为重要需要在用到时才更新对应的资源,而不像游戏一开始更新完所有资源)
~Disable Catalog Update On Startup //勾选后更新完直接加载会出错,显示文件重复加载
默认是没有勾选的,没有勾选,那么每次AA系统初始化的时候,会自动更新catalog文件,勾选上,将不会自动更新catalog文件,也就意味着不会自动更新资源.AA系统的初始化会在任意接口第一次调用时初始化,也可以主动调用Addressables.InitializeAsync()初始化.
如果有后续更新资源的打算,一定要在第一版发布前勾选上AddressableAssetSettings中的~BuildRemoteCatalog,并确认下Path是否正确。
更改加载的缓存路径:创建缓存设置资源,简单来说这个地址就是用来热更的,这样可以方便我们管理资源,否则Addressables会将资源下载到另外一个缓存文件夹里
设置路径并加入配置
//{UnityEngine.Application.persistentDataPath}
(正常使用全平台通用路径)这里地址填错危害很大(后面多了一个空格)害人得一批找了一天的错,会报错显示无法解压服务器AB包
{UnityEngine.Application.persistentDataPath}
==================================================================
资源打包
==================================================================
》》首次打包
》》后续更新