• 让Unity打包AssetBundle更轻松


    AssetBundle作用
    

    1、AssetBundle是一个压缩包包含模型、贴图、预制体、声音、甚至整个场景,可以在游戏运行的时候被加载;
    2、AssetBundle自身保存着互相的依赖关系;
    3、压缩包可以使用LZMA和LZ4压缩算法,减少包大小,更快的进行网络传输;
    4、把一些可以下载内容放在AssetBundle里面,可以减少安装包的大小;

    压缩算法选择

    None:使用LZMA算法压缩,压缩的包更小,但是加载时间更长。使用之前需要整体解压。一旦被解压,这个包会使用LZ4重新压缩。使用资源的时候不需要整体解压。在下载的时候可以使用LZMA算法,一旦它被下载了之后,它会使用LZ4算法保存到本地上。 
    UncompressedAssetBundle:不压缩,包大,加载快
    ChunkBasedCompression:使用LZ4压缩,压缩率没有LZMA高,但是我们可以加载指定资源而不用解压全部。 注意使用LZ4压缩,可以获得可以跟不压缩想媲美的加载速度,而且比不压缩文件要小。

    插件使用

    1、打开配置窗口

    在上方菜单中找到Tools->AssetBundle Browser

    这里可以在ab包列表中右键新建ab包和整个文件夹的ab包,创建完成后可以直接在资源列表直接把资源拖到相应的ab包下,要想给ab包设置后缀名,必须要先给新建的ab包添加资源,然后直接重命名把后缀名添加就可以

    2、打包ab 资源包

    在窗口菜单Build中,设置打包平台,设置输出路径,默认输出路径在Assets 同级目录,选择压缩算法,然后直接点击下方Build就可以打包,等待打包完成后可以对打包的ab包进行加密,生成加密后的md5,以便更新ab包。

    AssetBundle分组策略

    1、逻辑实体分组

    a,一个UI界面或者所有UI界面一个包(这个界面里面的贴图和布局信息一个包)

    b,一个角色或者所有角色一个包(这个角色里面的模型和动画一个包)

    c,所有的场景所共享的部分一个包(包括贴图和模型)

    2、按照类型分组

    所有声音资源打成一个包,所有shader打成一个包,所有模型打成一个包,所有材质打成一个包

    3、按照使用分组

    把在某一时间内使用的所有资源打成一个包。可以按照关卡分,一个关卡所需要的所有资源包括角色、贴图、声音等打成一个包。也可以按照场景分,一个场景所需要的资源一个包

    文件校验

    CRC MD5 SHA1 相同点: CRC、MD5、SHA1都是通过对数据进行计算,来生成一个校验值,该校验值用来校验数据的完整性。 不同点:

    1. 算法不同。CRC采用多项式除法,MD5和SHA1使用的是替换、轮转等方法;

    2. 校验值的长度不同。CRC校验位的长度跟其多项式有关系,一般为16位或32位;MD5是16个字节(128位);SHA1是20个字节(160位);

    3. 校验值的称呼不同。CRC一般叫做CRC值;MD5和SHA1一般叫做哈希值(Hash)或散列值;

    4. 安全性不同。这里的安全性是指检错的能力,即数据的错误能通过校验位检测出来。CRC的安全性跟多项式有很大关系,相对于MD5和SHA1要弱很多;MD5的安全性很高,不过大概在04年的时候被山东大学的王小云破解了;SHA1的安全性最高。

    5. 效率不同,CRC的计算效率很高;MD5和SHA1比较慢。

    6. 用途不同。CRC一般用作通信数据的校验;MD5和SHA1用于安全(Security)领域,比如文件校验、数字签名等。

    带加密插件下载:UnityBuildAssetsBundle

  • 相关阅读:
    Gin的请求与响应
    springboot中实现权限认证的两个框架
    TCP/IP的基础知识
    文件上传漏洞 | iwebsec
    DevOps|研发效能不是老板工程,是开发者服务
    JVM垃圾收集器
    Django--ORM 多表查询
    案例介绍:汽车售后服务网络构建与信息抽取技术应用(开源)
    事件对象的兼容
    按时间索引失败,苦战24h依旧error
  • 原文地址:https://blog.csdn.net/weixin_39186306/article/details/128059998