若愚

  • 首页
  • 开发记录
  • 心悟感想
    • 书生意气
    • 随心杂谈
  • 我的简介
    • 吾辈简介
    • 慷概解囊
若愚
独坐残床不思量,一盏昏灯照孤郎
  1. 首页
  2. 开发记录
  3. 正文

Unity热更简单思路

2021年3月31日 1883点热度 0人点赞 0条评论

关于AssetBundle

命名

不同的类型放到不同的文件夹下面

斜杠可以划分目录结构:scenes/wall

策略

按照逻辑实体打包,如一个UI一个,一个模型一个,一个场景

按照类型打包,如所有音效,所有shader

同时加载的资源放到一个包

共享的资源放到一个包,如场景共享部分

同一个资源的多个版本,用不同后缀

压缩

LZMA压缩方式是一种默认的压缩形式,这种标准压缩格式是一个单一LZMA流序列化数据文件,并且在使用前需要解压缩整个包体。LZMA压缩是比较流行的压缩格式,能使压缩后文件达到最小,但是解压相对缓慢,导致加载时需要较长的解压时间。

LZ4压缩方式Unity支持LZ4压缩,能使得压缩量更大,而且在使用资源包前不需要解压整个包体。LZ4压缩是一种“Chunk-based”算法,因此当对象从LZ4压缩包中加载时,只有这个对象的对应模块被解压即可,这速度更快,意味着不需要等待解压整个包体。LZ4压缩格式是在Unity5.3版本中开始引入的,之前的版本不可用。

不压缩的方式打包后包体会很大,,导致很占用空间,但是一旦下载Assetbundle,访问非常快。不推荐这种方式打包,因为现在的加载功能做的很友好了,完全可以用加载界面来进行后台加载资源,而且时间也不长。

 代码思路过程

         检测沙盒

如果App大版本不同,则需要对沙盒就行清空操作

         分析APP内的补丁清单

         分析沙盒内的补丁清单

         分析网络上的补丁清单

         对比游戏版本

大版本不同直接去更新大包

         获取下载列表

通过对比清单获取下载文件列表

         下载网络文件到沙盒

         下载网络补丁清单到沙盒

         下载结束

销毁

AssetBundle.Unload(false): 释放AssetBundle文件内存镜像

AssetBundle.Unload(true): 释放AssetBundle文件内存镜像同时销毁所有已经Load的Assets内存对象

Resources.UnloadAsset(Object): 显式的释放已加载的Asset对象,只能卸载磁盘文件加载的Asset对象

Resources.UnloadUnusedAssets(): 用于释放所有没有引用的Asset对象

Destroy():可用于销毁gameobject, component或asset。

GC.Collect()强制垃圾收集器立即释放内存

标签: 暂无
最后更新:2021年3月31日

admin

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2022 年 9 月
  • 2022 年 2 月
  • 2021 年 12 月
  • 2021 年 10 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 3 月
  • 2019 年 11 月
  • 2019 年 4 月
  • 2018 年 6 月
  • 2018 年 4 月
  • 2018 年 3 月
  • 2017 年 6 月
  • 2017 年 2 月
  • 2016 年 3 月

分类

  • 书生意气
  • 小游戏
  • 开发记录
  • 我的游戏
  • 随心杂谈

COPYRIGHT © 2025 若愚. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备19041692号