使用 Addressables 异步加载一个资源的示例代码如下:

using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;

public class ResourceLoader : MonoBehaviour
{
    public AssetReference assetReference;

    private void Start()
    {
        // 异步加载资源
        LoadAssetAsync();
    }

    private async void LoadAssetAsync()
    {
        // 使用 AssetReference 加载资源
        AsyncOperationHandle<GameObject> handle = Addressables.LoadAssetAsync<GameObject>(assetReference);

        // 等待资源加载完成
        await handle.Task;

        if (handle.Status == AsyncOperationStatus.Succeeded)
        {
            // 获取加载的资源
            GameObject loadedAsset = handle.Result;

            // 在场景中实例化加载的资源
            Instantiate(loadedAsset);
        }
        else
        {
            // 资源加载失败,处理错误
            Debug.LogError('Failed to load asset: ' + handle.OperationException);
        }

        // 释放资源句柄
        Addressables.Release(handle);
    }
}

在上述代码中,首先在 Start 方法中调用 LoadAssetAsync 方法来异步加载资源。在 LoadAssetAsync 方法中,使用 Addressables.LoadAssetAsync 方法来加载资源,传入一个 AssetReference 对象作为参数。然后,使用 await 关键字来等待资源加载完成。

在资源加载完成后,通过 handle.Result 来获取加载的资源,然后可以在场景中实例化该资源。如果资源加载失败,可以通过 handle.OperationException 来获取错误信息。

最后,使用 Addressables.Release 方法来释放资源句柄,以便在不再需要的时候释放资源。


原文地址: https://www.cveoy.top/t/topic/o3k4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录