动态加载单个资源
注意
- 动态加载单个资源 保证资源名或标签 唯一
- 多个同名或同标签的 同类型资源 自动加载第一个符合条件的资源
- 多个同名或同标签的 不同类型资源 根据泛型类型决定加载哪一个
- Addressables.Release释放资源。释放后影响使用该资源的对象,若要释放,确定该资源不再使用。
实例
AsyncOperationHandle<GameObject> handle = Addressables.LoadAssetAsync<GameObject>("SD");//参数是资源名或标签
handle.Completed += (obj) =>
{
if (obj.Status == AsyncOperationStatus.Succeeded)
{
Instantiate(obj.Result, Vector3.zero, Quaternion.identity);
// Addressables.Release(handle);
}
};
动态加载场景
方法参数
- 参数一 场景名
- 参数二 加载模式 单独还是叠加(保留上一个场景)
- 参数三 加载完成后是否直接切换场景
- 参数四 场景异步加载的优先级
注意
场景资源释放 不会影响加载出的场景 场景本质是配置文件
实例
Addressables.LoadSceneAsync("Load", UnityEngine.SceneManagement.LoadSceneMode.Single, false).Completed += (scene) =>
{
//未激活前 上一个场景仍然存在 加载的场景处于失活状态
//激活场景后 上一个场景不存在
Debug.Log("异步激活场景");
scene.Result.ActivateAsync().completed += (active) =>
{
Addressables.Release(scene);
};
};