我有一个来自在 Windows 7 上制作的 Windows Phone 项目的 .xnb 文件。我想在 Windows 8 Metro 应用程序中使用相同的资产。我在 Windows 8 上安装了 MSVS 2012 RC,其中包含来自 MonoGameWindowsMetroApplication 模板的项目。我将 .xnb 文件放在项目 Assets 文件夹中并尝试加载它,但出现异常,告诉我无法加载资产。我需要哪些属性或配置才能使用 .xnb 文件?
4 回答
当 MonoGame 正在处理框架的内容管道部分时,您可以简单地使用与 Windows Phone 7 游戏相同的内容管道引擎来创建内容管道并在您的 Windows 8 XNA MonoGame 项目中使用关联的 .xnb 文件.
我有一个关于使用 MonoGame for Windows 8 构建 XNA 游戏的博客教程系列,如果您查看第 3 部分,我将提供完成此操作的逐步演练。我的动手实验室和博客上的信息已经过 MonoGame 团队的审核和批准。
你在develop3D分支吗?我认为您需要添加一个虚拟内容项目并将其添加到该项目,而不是您的资产,首先构建该项目,然后您需要在您的 MonoGame 项目中引用该项目。
昨天我没有成功,因为我正在使用当前的马厩,但是昨天 MonoGame 的一个人告诉我这样做。以下是一些说明:
https://github.com/mono/MonoGame/wiki/MonoGame-Content-Processing
在 MonoGame 内容管道中不存在,至少现在不存在。
它很容易。1)在VS2010中创建一个xna项目2)在那里添加你所有的资产。3)重建你的项目。转到 bin/x86/debug/content 并从那里复制所有内容
现在转到您的 VS2012 Mono Project bin/x86/debug 查找内容文件夹,如果它在那里复制所有内容,则创建一个内容文件夹并将所有内容复制到那里。
现在无需更改任何一行代码,只需运行您的项目,您会发现一切正常!!!
如果您发现这样做有任何困难,请告诉我。
运行时 Xna 框架有许多读取各种 xnb 文件的类型读取器对象。一些类型阅读器用于从 fbx 模型处理的 xnb 文件,其他是从 2d 图像文件处理的 xnb 文件等。
当您调用content.Load<T>(xnb file name)
时,内容管理器使用适当的阅读器将 xnb 文件的字节信息读入适当的 Xna 类。xnb 文件中的字节信息旨在用于特定的 Xna 类,没有其他。地铁没有 Xna 课程。
所有这一切都说明在 Metro 环境中没有读取这些 xnb 文件的类型读取器。你必须自己写。不过这并不难,这与我所做的相似。我现在通过构建一个 Xna 项目将 fbx 文件处理为 xnb,然后我的 xna 项目将运行时模型的数据写入我自己的二进制文件,我从我的 Metro 应用程序中读取该文件。但我也可以简单地阅读 xnb。我只需要研究 contentManager 和 Model 类的类型阅读器就可以了解字节信息是如何分布的。
毕竟,这只是意味着我不必学习 FBXSDK,这将是引入模型信息的标准方式(并且可以说是首选方式)。
编辑 - 抱歉,没有使用单声道框架。我对此一无所知......也许他们确实有一种导入xnb文件的方法。