我正在使用XNA构建游戏,我的游戏级别有自定义文件格式。我想加载它们并自己解析它们,而不使用XNA的内容管道。我有这么多工作,通过将文件添加到Content项目,我甚至可以在Visual Studio中编辑它们(我也想要)。
问题:我收到一条警告,指出“项目项'item.lvl'不是使用XNA Framework内容管道构建的。将其Build Action属性设置为Compile以构建它。”
我不希望XNA编译它,因为我正在进行自己的解析。如何禁用警告?
答案 0 :(得分:4)
将文件的Build Action设置为None
,然后将其设置为Copy if newer
。这将导致文件被写入正确的输出目录而不通过内容管道。
答案 1 :(得分:1)
解决方案可以创建自定义内容导入器,如下所述:Creating a Custom Importer and Processor。要创建简单的内容导入器,您必须从ContentImporter<T>
(抽象类)继承您的类并覆盖Import()
方法。
以下是msdn:
中的一个简单示例//...
using Microsoft.Xna.Framework.Content.Pipeline;
class PSSourceCode
{
const string techniqueCode = "{ pass p0 { PixelShader = compile ps_2_0 main(); } }";
public PSSourceCode(string sourceCode, string techniqueName)
{
this.sourceCode = sourceCode + "\ntechnique " + techniqueName + techniqueCode;
}
private string sourceCode;
public string SourceCode { get { return sourceCode; } }
}
[ContentImporter(".psh", DefaultProcessor = "PSProcessor", DisplayName = "Pixel Shader Importer")]
class PSImporter : ContentImporter<PSSourceCode>
{
public override PSSourceCode Import(string filename,
ContentImporterContext context)
{
string sourceCode = System.IO.File.ReadAllText(filename);
return new PSSourceCode(sourceCode, System.IO.Path.GetFileNameWithoutExtension(filename));
}
}