У меня есть функция загрузки списка изображений из папки с помощью функции MonoGame Content.Load (). код функции следующий:
Код: Выделить всё
void loadImageList(ref Texture2D[] spriteList, string folder)
{
for (int i = 0; i < spriteList.Length; i++)
{
string fileName = folder + "/" + (i+1).ToString();
spriteList[i] = Content.Load(fileName);
}
}
Я называю это так:
Код: Выделить всё
Texture2D[] winOutline = new Texture2D[12];
loadImageList(ref winOutline, "winOutline");
Для этого папка должна быть настроена следующим образом:
Код: Выделить всё
Content
winOutline
1.png
2.png
3.png
4.png
5.png
6.png
7.png
8.png
9.png
10.png
11.png
12.png
Обычно это работает нормально. В своей игре я вызываю эту функцию несколько раз для нескольких разных листов спрайтов разной длины. Внезапно, когда я добавил 12-е изображение в папку winOutline, оно перестало работать и выдало следующее сообщение об ошибке:
Код: Выделить всё
Microsoft.Xna.Framework.Content.ContentLoadException: 'Asset does not appear to be a valid XNB file. Did you process your content for Windows?'
Я проверил папку bin, которую MonoGame автоматически создает, и обнаружил, что в winOutline/12.png действительно есть файл XNB. Во время отладки я также следил за функцией loadImageList и увидел следующее: для каждого значения i от 0 до 10 spriteList является правильным файлом. Когда i = 11, файл должен быть {winOutline/12}, но вместо этого он имеет значение NULL. Переменная fileName имеет правильный формат "winOutline/12".
Я несколько раз пытался перестроить файл в редакторе содержимого MGCB, но ничего не дало.
У меня нет представления о том, что происходит.
Подробнее здесь:
https://stackoverflow.com/questions/791 ... -when-i-do