(XNA)可能隐藏,压缩或重命名.XNB文件?

我对XNA还比较陌生(在这一点上,只有一个星期到C#和XNA),但是我现在开发游戏已经有一段时间了,我使用的程序在创建可执行文件时并不需要任何外部文件。 我对外部文件(大部分)完全没问题,但是阅读时,好像.XNB文件很容易被其他人使用,从而使你的资源无法使用。

经过一番思考,我想知道是否可以做以下三件事情之一:1.将.XNB文件隐藏在.exe中,在这种情况下,它可能只在运行时在外部位置创建它们(wouldn'真的解决了主要问题,但仍然)? 2.将许多.XNB二进制文件压缩成一个单一的二进制文件(比如声音为1,精灵为1等)3.(这个是我自己OCD的一个)把扩展名从.XNB改成我的select? 例如,为了使.DAT减less直接指标,我使用了XNA和/或这些文件可以用.XNB松土器访问?

这些都不会特别解决我最初的问题,但我仍然怀疑它们是否可能。 无论如何,先谢谢你们!

用一个答案来回答你的三个问题:确定你可以,但是你将无法使用默认的内容管理器。

但是,您可以创建自定义内容处理器,以只能立即知道的格式输出文件数据。 这仍然允许您使用默认的XNA内容管理器( this.Content在任何游戏派生类),并允许您以任何您想要的方式保护您的资产。 生成的内容文件仍然具有.xnb扩展名,但是它们不具有典型的.xnb格式。 (您可能可以更改扩展名,但我不确定。)

是的,你可以实现你自己的内容管理器。

http://romsteady.blogspot.com.es/2011/07/use-zip-files-to-hold-your-xna-content.html

 public class ZipContentManager : ContentManager { private ZipFile zipFile = null; public ZipContentManager(IServiceProvider services, string zipFile) : base(services, "") { this.zipFile = new ZipFile(zipFile); } protected override System.IO.Stream OpenStream(string assetName) { var entry = zipFile.GetEntry(assetName.Replace('\\','/') + ".xnb"); if (entry != null) { return zipFile.GetInputStream(entry); } return null; } }