1

我想从已经编译到 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)

完毕!

4

1 回答 1

0

如果你想加载一个已经编译成 Xnb 的文件,那很容易。这是一种可以使用 a 的方法FileStream

public static Effect FromStream(this Effect e, ContentManager content, FileStream stream)
{
    return content.Load<Effect>(stream.Name);
}

您可能需要进行一些文件路径解析,但它应该可以工作。

当然,您可以跳过整个扩展方法,将代码直接放入您的Game.cs文件中。

于 2012-10-11T21:40:45.787 回答