首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回null的Unity Resource.Load sprite

返回null的Unity Resource.Load sprite
EN

Stack Overflow用户
提问于 2016-03-14 23:04:20
回答 1查看 3.3K关注 0票数 0

好吧,我已经把头撞到墙上了.正如标题所述,Resource.Load("icons_3");正在返回null。我已经减少了尽可能多的代码来解决它(简化它)。这是我拥有的

代码语言:javascript
运行
复制
icon.sprite = Resources.Load<Sprite>(items[i].item.itemIcon);

很简单。itemIcon是"icons_3“--这是从一个被设置为多个的雪碧(一个已切片的精灵工作表)中产生的。我可以手动将sprite拖到对象上,但这违背了目的。sprite表位于Asset/Resources/目录中,因此它应该只加载名称。最初它位于Resources/Sprites文件夹中,但是为了减少所有内容,我将它移到了一个目录中。所以这次我完全输了。是因为它是雪碧片吗?是否需要使用另一种方法从雪碧工作表中加载雪碧?谢谢所有提前帮忙的人。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-15 10:18:11

做了个快速测试来确保。

代码语言:javascript
运行
复制
void Start()
{
    SpriteRenderer sr = gameObject.GetComponent<SpriteRenderer>();
    sr.sprite = Resources.Load<Sprite>("Sprites/BlueBlock");
}

雪碧位于Assets/Misc/Resources/Sprites/

效果很好,所以我猜你在别的地方犯了个错误。

必须这样做:

  • 您的雪碧必须设置为纹理类型Sprite (2D and UI)。默认情况下,这将在雪碧中创建一个“子精灵”(与雪碧编辑器一起使用),至少如果它是单个雪碧。如果它是多个的话,它的名称可能与主要的sprite不同,所以请确保您有这个权利。确保您给负载的整个路径是正确的(大小写敏感的票价,如我所知)。

编辑:

对于设置为多个并被分割的雪碧,您需要使用Resources.LoadAll。这些精灵有一个name属性,您可以使用它在循环中进行搜索。或者,您可以创建一个字典(以字符串作为名称),也可以创建一个更复杂的雪碧地图集。

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

https://stackoverflow.com/questions/35999728

复制
相关文章

相似问题

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