(XNA 4.0)是否有(XNA 3.1"Effect.CompileFromFIle")等价物?

zez*_*000 3 compiler-construction xna compilation effect xna-4.0

我正在制作用于游戏和工具的.NET 3D库,它们是D3D9,D3D10,OpenGL和XNA之间的跨平台,可在Windows,XBOX,Phone7,MacOSX和Linux(可能是iPhone和Android)上运行.

所以我的问题是......,我希望能够在XNA 4.0中编译一个效果文件,就像你在XNA 3.1中那样...微软提供借此功能的借口是不合法的,因为它杀死XNA用于制作工具为你的游戏(像效果编辑器).

如果有人知道解决这个问题并且可以发布一些代码或指向我正确的方向将是很好的tnx.

Mic*_*ann 5

此功能已被删除,以保持Xbox和Windows游戏之间的一致性.Xbox无法在运行时编译着色器,但在XNA 3.1中,Effect.CompileFromX方法包含在Xbox和Windows共有的运行时中.

正如Shawn Hargreaves在他的博客中解释的那样,在运行时仍然有几种方法可以编译效果内容(或任何其他类型的内容),但仅限于Windows游戏.

我个人发现Shawn的第四种方法很容易实现和健壮; 您可以在运行时导入任何类型的内容,而不必为设置任何MSBuild项目而烦恼.

编辑: 我注意到这篇文章的答案中列出的所有方法(截至2011年1月23日14:50-7UTC)都需要引用一些XNA内容管道库,这意味着用户可能必须安装XNA能够使用您的产品......