我想从已编译为xnb的文件中加载效果。
我可以在XNA 3.0中使用它
Effect (GraphicsDevice, Stream, CompilerOptions, EffectPool)
但我不知道如何在XNA 4.0中这样做,因为没有这样的构造函数。
非常感谢任何帮助。
最后,我通过XNA 4.0中的新构造函数解决了问题:
public Effect(GraphicsDevice graphicsDevice, byte[] effectCode);
那是
Stream bumpStream = ... //get the file stream
byte[] buffer = new byte[bumpStream.Length];
bumpStream.Read(buffer, 0, buffer.Length);
myFx = new Effect(graphicsDevice, buffer)
完成!
答案 0 :(得分:0)
如果要加载已编译为Xnb的文件,则很容易。
这是一种可以使用FileStream
:
public static Effect FromStream(this Effect e, ContentManager content, FileStream stream)
{
return content.Load<Effect>(stream.Name);
}
您可能需要进行一些文件路径解析,但它应该可以工作。
当然,您可以跳过整个扩展方法,并将代码直接放入Game.cs
文件中。