从 XNA 4.0 中的已编译效果初始化效果类实例



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

做!

如果要加载已编译为 Xnb 的文件,那么这很容易。这是一个可以使用FileStream的方法:

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

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

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

相关内容

  • 没有找到相关文章

最新更新