为什么Resources.Load <Sprite>返回null?

Bri*_*yen 27 unity-game-engine unityscript

我的项目有多个sprite位于Assets\Sprites中,我想用C#脚本加载它.

我测试了这个:

Sprite myFruit = Resources.Load <Sprite> ("Graphics_3");
Run Code Online (Sandbox Code Playgroud)

myFruit仍然是空的.

Jay*_*ama 62

Resources.Load将搜索目录Assets/Resources.

如果你想把它放到Sprites目录然后把它放在里面Resources(例如Assets/Resources/Sprites).

然后你可以像这样加载它:

Sprite myFruit = Resources.Load <Sprite> ("Sprites/Graphics_3");
Run Code Online (Sandbox Code Playgroud)

还要确保在检查器中将图像类型设置为Sprite.

如果要加载多个精灵,请使用:

Sprite[] myFruit = Resources.LoadAll <Sprite> ("Sprites/Graphics_3");  
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅

  • 请记住,`Resources.Load()`不仅会在`Assets/Resources`中搜索,而且会在任何其他目录下的`Resources`目录中搜索,例如`Assets/Sprites/Resources`,`Assets/Foobar/Plugin /资源`等 (3认同)
  • ..这个答案在 2019 年拯救了其他人:) 非常感谢老兄 (2认同)