浅析Unity Addressables
我们都知道,AssetBundle是Unity中常用于对游戏资源打包的一种方法,继传统Resources.Load加载方式后出现的,AssetBundle 顾名思义,就是资源打包压缩,其支持压缩类型包括模型、贴图、材质、动画、声音、视频、场景、预制体、或者自定义的二进制文件资源等,都可以进行压缩打包,功能也是颇为强大。同时它还可以更大程度减少包体大小,并且达到资源管理、热更新的作用。
但是今天小编和大家重点浅析是Unity 2018.3+推出的优秀Unity Addressable的可寻址资产管理系统,相比之前的Asset bundle ,这个系统更全面、更便捷使用。
Unity Addressable官方文档:https://docs.unity3d.com/Packages/com.unity.addressables@1.18/index.html
1、首先是项目中引入Addressables插件 ,Window -> Package Manager 。
2、快速应用Addressables。
2.1 学会初始化配置 Addressables System (Window > Asset Management > Addressables > Groups),创建Addressables Group。
2.2 学会为需要的内容标识为Addressable,当然也可以选择分不同的组,例如材质资源在一个标签(Labels)下,场景资源在一个标签(Labels)下,另外注意至少有一个默认组。
2.3 学会配置发布策略,在Packed Assets 设置Content Packing & Loading(查看路径:Window > Asset Management > Addressables >Profiles),可设置本地构建/远程构建。
2.4 学会构建打包发布,配置好资源分组,根据需要设置Play Mode Script,再通过Build > New Build > Default Build Script打包。
2.5 成功打包,查看打包后的产物,便可放置远程加载调用。
.hash文件内只包含一个Catalog文件的Hash值,用于客户单检测Catalog更新时,通过对比这个Hash值,判断是否有Catalog更新。
.json文件内包含每个AB包的Hash值和地址。
.bundle 就是打包的实际资产内容。
3、然而Addressable初步应用下来,因为发现里面属性/选项特别多,概念也不少,想快速理解也是有些困难的。所以小编想以树形思维与大家一起来深析里面的属性。
4、接着还想提一下Addressables 一些超常的优势。
4.1 使用Addressable可以通过弱引用的方式来加载资源,不加载之前是没有内存消耗的,加载后也可以完全卸载掉,对内存管理十分友好。
4.2 Addressable Asset Bundle可以自动加载相关依赖包,而AssetBundle是需要编程实现的。
4.3 Addressable Asset Bundle加载到内存中的bundle有引用计数,而AssetBundle加载到内存中的bundle需要自己进行管理。
4.4 Addressable Asset Bundle加载地址灵活。
4.5 Addressable提供了从资源标志、分组、打包、加载、更新一体化全套流程,属于全面性资源管理系统。
5、最后Addressables 常用的代码应用接口。
学习无止境,上述也只是重在应用层面的,后续可以深入Addressables的源码解析哈,欢迎大家敲窗交流!
相关推荐HOT
更多>>分布式锁是什么?有什么作用?
分布式锁是一种用于在分布式系统中实现并发控制的机制。在多个节点或进程之间共享资源时,分布式锁可确保只有一个节点或进程可以访问或修改共享...详情>>
2023-06-15 11:05:38Java中switch条件语句如何使用?
在Java中,switch语句是一种条件语句,用于根据不同的条件值执行不同的代码块。switch语句的语法如下:switch(expression){casevalue1://当expr...详情>>
2023-06-06 16:24:02js获取checkbox是否选中
要检查 JavaScript 复选框是否被选中,可以使用 checked 属性。该属性返回布尔值 true 表示复选框被选中,false 表示未被选中。详情>>
2023-04-21 10:19:04linux查找文件命令
在Linux系统中,可以使用以下命令来查找文件:1.find命令:find命令可以在指定的目录下递归查找文件,可以根据文件名、类型、大小等条件来查找...详情>>
2023-03-14 13:28:14