В основном есть два способа
1-й: переименуйте ваши изображения от 1 до N, чтобы вы могли загружать изображения в цикле for, например
List<Texture2D> images = new List<Texture2D>();
string folderPath = "MyImages/";
for(int i= 0; i<Count; i++)
{
try
{
images.Add(Content.Load<Texture2D>(folderPath + i.ToString));
}
catch
{
break;
}
}
вышеприведенный код работает для определенного количества, вы можете изменить для итерации, пока (true) увеличивая i, блог перехвата прекратится, если изображений больше не будет.
или используйте это (поместите статический класс в пространство имен вашего игрового проекта, а не в любую папку вложенного пространства имен), это будет работать. если вы не хотите расширять свой Контент, тогда удалите «this» из функции)
public static class MyExtension
{
public static List<T> LoadListContent<T>(this ContentManager contentManager, string contentFolder)
{
DirectoryInfo dir = new DirectoryInfo(contentManager.RootDirectory + "/" + contentFolder);
if (!dir.Exists)
throw new DirectoryNotFoundException();
List<T> result = new List<T>();
FileInfo[] files = dir.GetFiles("*.*");
foreach (FileInfo file in files)
{
result.Add(contentManager.Load<T>(contentFolder + "/" + file.Name.Split('.')[0]));
}
return result;
}
}
У этого кода есть проблема, если длина вашего реального пути будет больше 256, функция не будет работать. Так что будьте осторожны.