Loading sets of images into arrays using Resources subfolders and string.Format

Hello,

Basically what I have working now is a set of images in the Resources folder, named “frame0001”, “frame0002” and so on. This I can load into a Texture2D array with no problem using the syntax:

for (int i = 0; i < numberOfFrames; ++i)            
        frames *= (Texture2D) Resources.Load(string.Format("frame{0:d4}", i + 1));*

What I want to do, is to make a couple of subfolders in the Resources folder, say Panel_1 and Panel_2, put sets of images in each, and load them into the array selectively. I can’t get the syntax to work however, needing to specify both a path and string.Format in the argument. I’m thinking something like this:
if (panelWanted == “Panel_1”)
for (int i = 0; i < numberOfFrames; ++i)
frames = (Texture2D)Resources.Load(“Panel_1” + string.Format(“frame{0:d4}”, i + 1));
else if (panelWanted == “Panel_2”)
for (int i = 0; i < numberOfFrames; ++i)
frames = (Texture2D)Resources.Load(“Panel_2” + string.Format(“frame{0:d4}”, i + 1));
I also tried using Resources.LoadAll in various shape and forms such as:
frames = (Texture2D)Resources.LoadAll(“Panel_2”);
but I keep getting errors like:
> Cannot convert type UnityEngine.Object[]' to UnityEngine.Texture2D’
I’m sure there’s an easy solution but I just can’t figure out the correct syntax. Any help is appreciated.

You should try using the generic version of the Resources.Load method, the one with the form Resources.Load<“yourTypeHere”>(path). Ignore those quotation marks :stuck_out_tongue:

Also I think you are missing a backslash “/” in your path. The backslash means you are accessing a subfolder in the resources folder. The path should be:

“Panel_1/” + string.Format(blabla, i + 1)

and the same for Panel_2