Resources.Loadall returns null, even if path points the multiple sprites.
Hello guys, I'm posting the issue that I've never stuck before.
private void SetSpriteCache()
{
foreach (TilesetStruct TS in Property.tilesets)
{
int ID = TS.firstgid;
string Filename = TS.source;
ID = (ID - 1)/4096;
Filename = Filename.Replace("\\", string.Empty);
Filename = Path.GetFileName(Filename);
Filename = Filename.Replace(".tsx", string.Empty);
Debug.Log(Filename);
Sprite[] TempSprite = Resources.LoadAll<Sprite>("Sprites/Tiles/" + Filename);
SpriteCache.Add(ID, TempSprite);
}
}
The Code is like above. I wanna make a Tiled-Unity Json Importer, so I import json, and to extract which tileset I used in Tiled, I trimmed the Filename a bit.
when I tested, the log showed me that trimming is done as I intended. In the Json file, the tileset's source is "..\/..\/Sprites\/Tiles\/Tiled\/ma.tsx", and the script extracted only "ma".
The "ma.png" sprite's path is my Sprites/Tiles/ma.png(note that the tsx file from the source is different from ma.png). So, I guess there is no reason NullReferenceException occurs.
But sadly, Resources.LoadAll<>() method does not work as I thought.
The points I double-checked
1) the path of the sprite.
2) the type of the sprite which is multiple.
3) the number of looping. The exception is always thrown at the first loop.
4) is proper Json file imported (checked by inspector)
5) The script is attached to my project
Please can you guys help me from this pit?
Answer by polarmagpie · Dec 09, 2017 at 02:55 PM
...The problem was that I hadn't initialized "SpriteCache" list. sigh, what did I do..
Your answer
Follow this Question
Related Questions
Best way to Resources.LoadAll GameObjects in folder to array C# 1 Answer
The Object you want to instantiate is null. 1 Answer
Resources.Load returns null but Resources.LoadAll finds my file 1 Answer
how to assign video to albedo unity 0 Answers
Behaviour Missing in empty Scene,Behaviour Missing Warning on empty Scene 0 Answers