unity Resources.Load <Sprite> 返回 null

Nid*_*ere 2 c# sprite unity-game-engine

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

那你能看一下吗?

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

我尝试了以下方法:

gameObject.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("1");
Run Code Online (Sandbox Code Playgroud)

gameObject.GetComponent<SpriteRenderer>().sprite = Resources.Load("1") as Sprite;
Run Code Online (Sandbox Code Playgroud)

Sprite s = Resources.Load("1") as Sprite;
gameObject.GetComponent<SpriteRenderer>().sprite = s;   
Run Code Online (Sandbox Code Playgroud)

Sprite s = Resources.Load<Sprite>("1");
gameObject.GetComponent<SpriteRenderer>().sprite = s;   
Run Code Online (Sandbox Code Playgroud)

他们都用“None(Sprite)”替换了现有的对象精灵,我猜这意味着“空”。

任何帮助将非常感激!

Pro*_*mer 6

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

那就是问题所在。该文件夹必须命名为Resources 而不是 Resourses。它也不是资源

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

Sprite sprite = Resources.Load("1", typeof(Sprite)) as Sprite;
Run Code Online (Sandbox Code Playgroud)

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

Sprite[] sprite = Resources.LoadAll<Sprite>("1") as Sprite[];
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到加载 Sprite 的其他方法。