Unity Resources.Load <Sprite> return null

Unity Resources.Load <Sprite> return null

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

所以你能看一下吗?

像其他人一样,我正在尝试通过代码更改对象的精灵。 精灵文件本身位于 "Assets/Resourses" 文件夹中。 导入设置声明导入文件的纹理类型是 "Sprite(2D and 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"。

非常感谢任何帮助!

The sprite file itself is in "Assets/Resourses" folder.

这就是问题所在。该文件夹必须命名为 Resources not Resources。也不是

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

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

如果 sprite 设置为多模式,则使用它;

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

您可以找到其他加载 Sprites 的方法