用户工具

站点工具


asset_download

动态下载

目的

* 减少包体容量

* 支持英雄等数据的热更新

支持下载的类型

名称类型路径 备注
英雄立绘 带动画 Prefab /Resources/Prefab/HeroAnim/ 最主要的更新内容
怪物立绘 带动画 Prefab /Resources/Prefab/MonsterAnim/ 同上
战斗地图 远景/地面 Sprite /Textures/Map/Resources/ 后期地图
战斗技能 Prefab /Resources/Prefab/UI/Variant/ 注意引用关系
常规图标 Sprite 待定 待定
UI预置体 Prefab 待定 待定

工作流

数据准备

Windows→AssetBundleBrower

通过Unity 自带的插件AssetBundleBrower,添加需要热更新的数据

可以添加目录或者单个文件,打包信息记录在 目录或者文件的meta文件中,注意上传

针对平台选择Build,输出目录选 AssetBundles\StandaloneWindows 这样的(对应的有iOS和Android)

输出成功以后选择工具(UIGen→UIGenTools)

* 1 AB更新ab_config

读取输出目录中的assetbundle文件和manifest文件,把文件的hash和size更新到ab_config对应平台的对应字段中

* 2 AB拷贝和上传

将 Client\UnlimitedPuzzle\AssetBundles\ 下的内容,全部同步到 \Server\PHP\Upload\中

并执行svn的commit指令,等待用户确认添加之后上传。

* 3 AB清除打包文件

按照ab_config中的 bundle_folder来清理需要热更新的资源。

此步骤只在本地测试BuildMachine做版本之前执行,不要把删除的结果上传服务器。

数据读取

* UIFeatureCommon.SafeSetIcon 主要处理找不到图片的时候,尝试从ab文件中下载读取的情况

* UIPool.LoadJob 主要处理找不到预置体的时候,尝试从ab文件中下载读取的情况

* ABManager有一整套流程进行AB下载

1/ 判断 文件是否在ab_config中

2/ 判断 AB包是否被加载,有则直接读取

3/ 从网络或者缓存 读取 AB包,如果没在缓存,需要标记下载数量

4/ 下载以后异步使用,同步使用的可以先使用Preload的方法,把预置体放到池里

asset_download.1561622328.txt.gz · 最后更改: 2019/06/27 15:58 由 shenmo