好吧,我已经用足够的力量击败了我的头......正如标题所说,Resource.Load(“icons_3”);返回null。我尽可能地利用代码来减少它(简化它)。继承人我拥有的东西
icon.sprite = Resources.Load<Sprite>(items[i].item.itemIcon);
非常简单。 itemIcon是“icons_3” 这是一个设置为多重的精灵(切片的精灵表)。我可以手动将精灵拖到对象上,但这会破坏目的。 精灵表位于Assets / Resources /目录中,因此它应仅加载名称。最初它位于Resources / Sprites文件夹中,但为了减少所有内容,我将其移动到目录中。 因此我完全失去了这个。是因为它的精灵表吗?我是否需要使用另一种方法从精灵表中加载精灵?感谢所有人提前帮助。
答案 0 :(得分:0)
快速测试只是为了确保。
void Start()
{
SpriteRenderer sr = gameObject.GetComponent<SpriteRenderer>();
sr.sprite = Resources.Load<Sprite>("Sprites/BlueBlock");
}
Sprite位于Assets/Misc/Resources/Sprites/
。
工作得很好,所以我猜你在其他地方犯了错误。
必须这样做:
Sprite (2D and UI)
。
这将创建一个&#34;子精灵&#34;默认情况下,在Sprite中(使用Sprite Editor)至少是一个精灵。如果它是多个,那么它的名称可能与主精灵不同,所以请确保你有这个权利。确保您为Load提供的整个路径是正确的(区分大小写,如我所知)。编辑:
对于设置为多个并被切片的精灵,您需要使用Resources.LoadAll
。这些精灵有一个名称属性,您可以使用它来循环搜索。或者,您可以创建一个Dictionary(字符串为名称)或更复杂的精灵地图集。