【Unity】Addressable Assets System
寻址式资源管理系统学习笔记
- 教学视频网址: https://www.bilibili.com/video/BV1N4411q7NA?from=search&seid=9501846827487133762
学习内容:
- 如何设计游戏资源加载的迭代设计
- 如何设计安装包和资源包或DLC的拆离设计
- 如何设计可切换的高清包和省电包等不同分辨率的纹理包
- 如何通过本系统设计换皮功能
- 如何检查资源是否下载并加载完成
- 如何制作后面添加的资源扩充包
- 如何在本地端模拟服务器加载资源包的流程
什么是Addressables?
- 可以取代Asset Bundle的高阶管理系统
- 天涯海角都会追踪到的信标(Address)
- 自动化仓储管理
- 本地或是异地都可以追踪
- 大多数形态资源都可以追踪
- 只加载有关联的资源
- 运行阶段优良的内存管理
- 迭代便利
Instantiate()
- 同步实例化
- 资源已在本地端
- 会等到工作结束后才继续运行
- 大量加载容易造成卡顿
- 如何使用Addressable优化? 代码如下:
//public GameObject prefab; 改为:
public AssetRefrence prefab;
//Instantiate(prefab); 改为:
prefab.InstantiateAsync(); //异步加载
LoadAssetAsync()
- 异步加载
- 资源可以在本地也可以在远端服务器
public List<AssetReference> prefabs; //使用List存储预制体
bool assetsReady = false; //是否已经加载完毕, 准备实例化
int toLoadCount; //需要加载的数量
int prefabIndex = 0;
void Start()
{
toLoadCount = prefabs.Count;
foreach(