1、通过资源名或标签名动态加载、释放单个资源
// 通过资源名
handle = Addressables.LoadAssetAsync<GameObject>("Cube");
handle.Completed += (handle) =>
{
//判断加载成功
if (handle.Status == AsyncOperationStatus.Succeeded)
Instantiate(handle.Result);
//一定要是 加载完成后 使用完毕后 再去释放
//不管任何资源 只要释放后 都会影响之前在使用该资源的对象
// 可以在 OnDstroy 中调用
Addressables.Release(handle);
};
// 通过Label
Addressables.LoadAssetAsync<GameObject>("Red").Completed += (handle) =>
{
//判断加载成功
if (handle.Status == AsyncOperationStatus.Succeeded)
Instantiate(handle.Result);
};
注意:
- 如果存在同名或同标签的同类型资源,我们无法确定加载的哪一个,它会自动加载找到的第一个满足条件的对象
- 如果存在同名或同标签的不同类型资源,我们可以根据泛型类型来决定加载哪一个
2、动态加载场景
参数一:场景名
参数二:加载模式 (叠加还是单独,叠加就是两个场景一起显示,单独就是只保留新加载的场景,正常情况为单独)
参数三:场景加载是否激活,如果为false,加载完成后不会直接切换,需要自己使用返回值中的ActivateAsync方法
参数四:场景加载的异步操作优先级
Addressables.LoadSceneAsync("SampleScene", UnityEngine.Sce

最低0.47元/天 解锁文章
2308

被折叠的 条评论
为什么被折叠?



