Można użyć tego pomocnika klasa, aby to zrobić. Działa poprzez pobranie katalogu i użycie metody GetFiles()
w celu utworzenia listy wszystkich tekstur, które należy załadować. Następnie ładuje je normalnie z Twoim ContentManager
i umieszcza je w słowniku, abyś mógł z nich korzystać.
public static class TextureContent
{
public static Dictionary<string, T> LoadListContent<T>(this ContentManager contentManager, string contentFolder)
{
DirectoryInfo dir = new DirectoryInfo(contentManager.RootDirectory + "/" + contentFolder);
if (!dir.Exists)
throw new DirectoryNotFoundException();
Dictionary<String, T> result = new Dictionary<String, T>();
FileInfo[] files = dir.GetFiles("*.*");
foreach (FileInfo file in files)
{
string key = Path.GetFileNameWithoutExtension(file.Name);
result[key] = contentManager.Load<T>(contentFolder + "/" + key);
}
return result;
}
}
Tworzenie słownika do przechowywania tekstur, a nie linia po linii Texture2D
s
public Dictionary<string, Texture2D> spriteContent;
...I wywołać metodę w swojej metodzie
spriteContent = TextureContent.LoadListContent<Texture2D>(content, "textures");
LoadContent
Teraz kiedy potrzebujesz fakturę od niego, po prostu zrobić:
Whatever.Image = spriteContent["WhateverTexture"]
Upewnij się TextureName
to nazwa atut swojej fakturze.