Unity Addressables 异步加载资源教程:详细示例代码
使用 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 著作权归作者所有。请勿转载和采集!