如何使用 Monogame 正确获取文件夹中的所有纹理?

How do I properly get all textures within a folder withing Monogame?

我是 C# 和 Monogame 的新手,我正在尝试通过提供纹理文件夹中的精灵数组来制作 SpriteLoop 功能,您可以在其中播放精灵。我正在尝试下面给出的代码,但是当我尝试使用 spriteBatch.Draw 绘制精灵时,如下所示:

spriteBatch.Begin();
foreach(Texture2D texture in spriteLoop)
    spriteBatch.Draw(texture, new Vector2(0,0), Color.White);
spriteBatch.End();
base.Draw(gameTime);

没有任何反应,我确保将图像文件包含在文件夹中,甚至在我控制台记录它们时它们也会显示出来。请帮我找出代码中的具体错误。任何帮助表示赞赏。谢谢!

public static class TextureContent
{
    public static List<Texture2D> TexturesFromFolder(this ContentManager contentManager, GraphicsDevice graphics, string contentFolder)
    {
        //System.Console.WriteLine("./Content/"+contentFolder);
        DirectoryInfo dir = new DirectoryInfo(contentManager.RootDirectory+"/"+contentFolder);
        if(!dir.Exists)
            throw new DirectoryNotFoundException();
        List<Texture2D> result = new List<Texture2D>();

        FileInfo[] files = dir.GetFiles("*.*");
        foreach(FileInfo file in files)
        {
            string key = Path.GetFileName(file.Name);
            System.Console.WriteLine(key);
            //result.Add(contentManager.Load<Texture2D>(contentFolder + "/" + key));
            FileStream fileStream = new FileStream(contentManager.RootDirectory+"/"+contentFolder+"/"+key, FileMode.Open);
            Texture2D spr = Texture2D.FromStream(graphics, fileStream);
        }
        return result;
    }
}

如果您在 TexturesFromFolder 方法中检查 foreach 循环的结尾,您会发现您确实在从流中加载纹理,但实际上从未将它添加到结果列表中。这意味着你总是 return 一个空列表。