Why does Resources.Load <Sprite> return null?

Place awesome.png in Assets/Resources/ (you can have subfolders), and use:

GetComponent<SpriteRenderer>().sprite = 
    Resources.Load<Sprite>("awesome");  // No file extension.

http://docs.unity3d.com/ScriptReference/Resources.html

There's also LoadAll that "Loads all assets in a folder or file at path in a Resources folder."


Resources.Load will search for a directory in Assets/Resources.

If you want to put it to Sprites directory then put it inside Resources (ex. Assets/Resources/Sprites).

Then you can just load it like this:

Sprite myFruit = Resources.Load <Sprite> ("Sprites/Graphics_3");

Also make sure that you've set your image type to Sprite in the inspector.

If you want to load multiple sprites, use this:

Sprite[] myFruit = Resources.LoadAll <Sprite> ("Sprites/Graphics_3");  

See this for more details.