可寻址系统 动态加载单个资源、场景

动态加载单个资源

注意

  1. 动态加载单个资源 保证资源名或标签 唯一
  2. 多个同名或同标签的 同类型资源 自动加载第一个符合条件的资源
  3. 多个同名或同标签的 不同类型资源 根据泛型类型决定加载哪一个
  4. 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);
            }
        };

动态加载场景

方法参数

  1. 参数一 场景名
  2. 参数二 加载模式 单独还是叠加(保留上一个场景)
  3. 参数三 加载完成后是否直接切换场景
  4. 参数四 场景异步加载的优先级

注意

场景资源释放 不会影响加载出的场景 场景本质是配置文件

实例

Addressables.LoadSceneAsync("Load", UnityEngine.SceneManagement.LoadSceneMode.Single, false).Completed += (scene) =>
{
    
    
    //未激活前 上一个场景仍然存在 加载的场景处于失活状态
    //激活场景后 上一个场景不存在
    Debug.Log("异步激活场景");
    scene.Result.ActivateAsync().completed += (active) =>
    {
    
    
        Addressables.Release(scene);
    };
};

猜你喜欢

转载自blog.csdn.net/weixin_43796392/article/details/122998370