首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用可寻址的Unity加载Sprite

使用可寻址的Unity加载Sprite
EN

Stack Overflow用户
提问于 2019-10-03 09:44:01
回答 1查看 3.3K关注 0票数 0

我对Unity非常陌生,在做了一些研究之后,我发现了很多关于我不应该使用Resources.Load而是使用Addressable的讨论。

以前我是用来加载卡片的

代码语言:javascript
复制
cardPrefab.cardArt.sprite = Resources.Load<Sprite>("CardSprite/Justice");

然而,我似乎无法获得可寻址的工作。尝试执行以下操作会出现错误:

代码语言:javascript
复制
 Sprite Test = Addressables.LoadAssetAsync<Sprite>("CardSprite_Justice");

我得到了这个错误:

代码语言:javascript
复制
Cannot implicitly convert type 'UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle<UnityEngine.Sprite>' to 'UnityEngine.Sprite'

这真的很让人困惑。

EN

回答 1

Stack Overflow用户

发布于 2019-10-03 10:33:15

通过回调获取

代码语言:javascript
复制
private void Sprite_Completed(AsyncOperationHandle<Sprite> handle)
{
    if (handle.Status == AsyncOperationStatus.Succeeded)
    {
        Sprite result = handle.Result;
        // Sprite ready for use
    }
}

void Start()
{
    AsyncOperationHandle<Sprite> SpriteHandle = Addressables.LoadAsset<Sprite>("CardSprite_Justice");
    SpriteHandle.Completed += Sprite_Completed;
}

您可以使用协程或任务来获取它,请查看文档:https://docs.unity3d.com/Packages/com.unity.addressables@0.7/manual/AddressableAssetsAsyncOperationHandle.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58211306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档