C# 在Winform XNA中构建内容

C# 在Winform XNA中构建内容,c#,editor,xna,C#,Editor,Xna,我已经成功地使用和将内容构建到我的winform中,但我的问题是,如何在下次打开编辑器时将内容加载回编辑器中。当前正在将内容.xnb文件保存到临时文件夹中。是否有必要将内容重新加载到编辑器中,而不必再次构建每个文件 我是否可以将其保存到bin/文件夹中的Content文件夹中,然后在启动时查看该文件夹,查找.xnb文件并加载它们?或者有更简单的方法吗?在第二个WinForms示例中,有一个HTML自述文件,描述了应用程序如何将构建内容保存到临时目录,然后在程序关闭时将其删除 这是重要的一点: 根

我已经成功地使用和将内容构建到我的winform中,但我的问题是,如何在下次打开编辑器时将内容加载回编辑器中。当前正在将内容.xnb文件保存到临时文件夹中。是否有必要将内容重新加载到编辑器中,而不必再次构建每个文件


我是否可以将其保存到bin/文件夹中的Content文件夹中,然后在启动时查看该文件夹,查找.xnb文件并加载它们?或者有更简单的方法吗?

在第二个WinForms示例中,有一个HTML自述文件,描述了应用程序如何将构建内容保存到临时目录,然后在程序关闭时将其删除

这是重要的一点:

根据应用程序的不同,您可能希望始终使用相同的临时目录名,并且永远不要删除它。这将在硬盘上留下文件。内容构建过程是增量的。如果您的程序尝试加载上一次运行期间已生成的相同内容文件,则不需要执行任何实际处理工作。这可以加快程序(如级别编辑器)的加载时间,这些程序可能希望在每次启动时加载相同的文件

它表示删除临时目录“由
ContentBuilder.DeleteTempDirectory
处理,该目录由
Dispose
调用”。因此,只需找到对
DeleteTempDirectory
的调用并将其删除即可

自述文件更详细地描述了如何选择临时目录(以及为什么选择)。您可以修改
CreateTempDirectory
,以更好地适应您的应用程序。例如,如果编辑器中有“级别”文件,您可能希望将构建内容(.xnb文件)保存在与您的级别相邻的同名子目录中,以便您的游戏可以轻松打开构建内容


在会话之间保存文件后,您所要做的就是重新加载它们。两种明显的方法是存储打开的文件列表,并在下一个会话中重新加载。或者只需打开输出目录中的所有内容:

下面是一些实现后者的粗略代码(假设没有子目录):

string folder=@“C:\temporaryxnafilesorwhere”;
列表纹理=新列表();
ContentManager内容=新的ContentManager(serviceProvider,文件夹);
string[]files=Directory.GetFiles(文件夹“*.xnb”);
foreach(文件中的字符串文件)
{
string assetName=Path.getFileName WithoutExtension(文件);
添加(content.Load(assetName));
}

感谢您的发言。这确实有帮助,尽管它不能解决我的问题。我想知道是否有可能将那些已经构建好的文件重新加载到编辑器中,而无需指定,或者我可以通过查看文件夹并以这种方式加载它们?
string folder = @"C:\TemporaryXNAFilesOrWhatever";
List<Texture2D> textures = new List<Texture2D>();
ContentManager content = new ContentManager(serviceProvider, folder);
string[] files = Directory.GetFiles(folder, "*.xnb");
foreach(string file in files)
{
    string assetName = Path.GetFileNameWithoutExtension(file);
    textures.Add(content.Load<Texture2D>(assetName));
}