我想知道是否可以在XNA中使用Texture2D.FromStream()从流的中间加载纹理。我的想法是,我有一个动画系统,可以将肢体的纹理直接保存到包含其他信息的文件中,如时间,名称等等......我的问题出现在尝试加载文件时,当它到达加载纹理。我得到一个InvalidOperationExecption,没有真正的细节。到目前为止,这是我的代码:
写作:
...
//writes the name
binWriter.Write(name);
if (texture != null)
{
binWriter.Write(true);
//save the texture into the stream
texture.SaveAsPng(binWriter.BaseStream, texture.Width, texture.Height);
}
else
binWriter.Write(false);
//writes the ID of the parent limb
binWriter.Write(system.getParentID((Limb)parent));
...
读:
...
string name = binReader.ReadString();
Texture2D tex = null;
//gets the texture if it exists
bool texture = binReader.ReadBoolean();
if (texture)
tex = Texture2D.FromStream(graphics, binReader.BaseStream);
//finds the index of the parent limb
int parentID = binReader.ReadInt32();
...
任何想法?
-Edit-解决了!我使用了getData()和setData()方法,并将数据作为一个uints数组写入和读取。