Unity Resources.Load <sprite>返回null

时间:2017-04-03 00:42:50

标签: c# unity3d sprite

是的,我已经阅读了所有类似问题的主题。 然而我的还没有解决:(

那你可以看一下吗?

和其他人一样,我正在尝试通过代码更改对象的精灵。 精灵文件本身位于“资产/资源”文件夹中。 导入设置指出导入文件的纹理类型为“Sprite(2D和UI)”。

我尝试过以下方法:

gameObject.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("1");

gameObject.GetComponent<SpriteRenderer>().sprite = Resources.Load("1") as Sprite;

Sprite s = Resources.Load("1") as Sprite;
gameObject.GetComponent<SpriteRenderer>().sprite = s;   

Sprite s = Resources.Load<Sprite>("1");
gameObject.GetComponent<SpriteRenderer>().sprite = s;   

所有这些都用“None(Sprite)”替换现有的对象精灵,我猜这意味着“null”。

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:3)

  

精灵文件本身位于“资产/资源”文件夹中。

这就是问题所在。该文件夹必须命名为资源 资源。它也不是Resource

必须命名为 Resources 。修复文件夹名称后,您可以使用下面的代码段阅读Sprite

Sprite sprite = Resources.Load("1", typeof(Sprite)) as Sprite;

如果精灵设置为多模式,则使用此;

Sprite[] sprite = Resources.LoadAll<Sprite>("1") as Sprite[];

您可以找到其他方法来加载精灵here