Unity Addressables 同步加载资源教程
下面是使用 Addressables 同步加载一个资源的示例代码:
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
public class LoadResource : MonoBehaviour
{
public AssetReference assetReference;
private void Start()
{
LoadAsset();
}
private void LoadAsset()
{
// 同步加载资源
AsyncOperationHandle<GameObject> handle = Addressables.LoadAssetAsync<GameObject>(assetReference);
handle.Completed += OnLoadCompleted;
}
private void OnLoadCompleted(AsyncOperationHandle<GameObject> handle)
{
if (handle.Status == AsyncOperationStatus.Succeeded)
{
// 获取加载的资源
GameObject loadedAsset = handle.Result;
// 在这里可以对加载的资源进行操作,比如实例化、设置位置等
// 释放资源
Addressables.Release(handle);
}
else
{
Debug.LogError('Failed to load asset: ' + handle.OperationException);
}
}
}
上述代码首先定义了一个assetReference,该引用指向要加载的资源。
在LoadAsset方法中,通过调用Addressables.LoadAssetAsync方法来加载资源,返回一个AsyncOperationHandle对象。
然后,通过订阅handle.Completed事件,在加载完成后调用OnLoadCompleted方法。
在OnLoadCompleted方法中,首先检查加载操作的状态,如果加载成功,则可以通过handle.Result获取加载的资源。在这里你可以对资源进行任何操作,比如实例化、设置位置等。
最后,通过调用Addressables.Release方法释放资源,释放完资源后,你就可以在需要的地方使用它了。
原文地址: https://www.cveoy.top/t/topic/o3lb 著作权归作者所有。请勿转载和采集!