我只是准备将我的第一款游戏提交给市场,但我遇到了这个问题。
我今天意识到我的XAP文件似乎非常小。 (粗略350kb) 我今天正在读的是我的所有内容(纹理,声音,字体)应该将它们的构建操作设置为“内容”而不是之前设置的“编译”。 我将它们全部设置为“内容”设置,现在我收到“错误加载”文件名“。找不到文件。”
除了构建操作之外,我没有更改任何其他内容,并且我已确认找不到所有文件。 在更改构建操作后,我的load语句中是否需要更改某些内容? 目前我的加载语句看起来像这样。
font = content.Load<SpriteFont>("menufont");
或
ShipTexture = ScreenManager.Game.Content.Load<Texture2D>("Jet");
fyi我使用GameStateManagement示例从头开始构建我的游戏,以防万一。
请帮忙。感谢。
答案 0 :(得分:3)
我不确定你在哪里阅读,但事实并非如此。
ContentManager
对象(如Game.Content
)被编程为查找xnb
个文件。那些必须从源文件编译,如.png,.wav等。设置为Content
将源文件直接复制到XAP中,然后必须用{ {1}}要使用它,而不是普通的TitleContainer.OpenStream
,因为它不是Content.Load
文件。
如果您的XAP文件非常小,可能是因为XAP在整个软件包上使用ZIP压缩。查看bin \ Debug或bin \ Release文件夹中的“Content”文件夹,查看未压缩的完整大小。
答案 1 :(得分:1)
您希望将其设置为Compile
,而不是Content
。 Build Action: Compile
表示将其作为XNA内容处理为.xnb
文件,然后可以通过ContentManager.Load<T>
调用进行访问。 Build Action: Content
是其他不会导致您的内容被编译的内容。它要么直接复制,要么被忽略,但无论哪种方式,资产都无法从ContentManager
获得。