AddressAble

资源配置

image-20240812214813889

不同的Group对应最后要打的不同的AB包,每个文件最前面显示的就是对应的key,可以通过key来直接进行访问

image-20240812214528628

一般对于选中的资源都是默认使用路径资源,右键鼠标点击下图红框中间的按钮可以简化名称

image-20240812214713691

加载代码

建议参考

Unity 之 Addressable可寻址系统 – 代码加载介绍 – 进阶(一)_unity addressable-CSDN博客

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
   // 使用Addressables.LoadAssetAsync来异步加载资源
AsyncOperationHandle<T> handle = Addressables.LoadAssetAsync<T>(path);

// 等待加载操作完成
yield return handle.Task ;

//加载成功后把数据发送回去
if (handle.Status == AsyncOperationStatus.Succeeded)
{
return handle.Result as T;
}

//推荐使用下面这种,第一种总是出错,还只能在Start函数中运行,真是烦人,不要返回句柄
Addressables.LoadAssetAsync<T>(path).Completed += (obj) =>
{
Debug.Log(obj.Result);
string key = path + "_" + typeof(T).Name;
if (resDic.ContainsKey(key))
{
ResInfo<T> resInfo = resDic[key] as ResInfo<T>;
resInfo.asset = obj.Result as T;

resInfo.callBack?.Invoke(resInfo.asset);

//加载完毕后 清空引用
resInfo.callBack = null;
resInfo.coroutine = null;
}
};

加载资源的注意点:

1.不接受用抽象父类去加载子类