我正在做一些逐帧记录对象位置的动画。我想将frameNo,objectname和对象坐标位置x,y,z保存到textfile中,我可以检索数据。实施它的最佳方法是什么?
palmTimer-=Time.time;
if(palmTimer <= 0)
{
palmFrame +=1;
Debug.Log (palmFrame);
Debug.Log (palmObject);
Debug.Log (palmObject.transform.localPosition);
palmTimer =180.0f;
}
答案 0 :(得分:0)
使用某种结构来存储数据,然后使用XML或JSON序列化程序将数据存储和检索到结构数组中。
struct FrameData
{
public int FrameNumber;
public string ObjectName;
public int X, Y, Z;
public FrameData(int frameNumber, string objectName, int x, int y, int z)
{
this.FrameNumber = frameNumber; this.ObjectName = objectName; this.X = x;
this.Y = y; this.Z = z;
}
}
在每个帧中,将数据存储到新的FrameData对象中并将其放入数组或列表中。完成后,使用序列化程序序列化数据。
XmlSerializer serializer = new XmlSerializer(typeof(FrameData[]));
using (FileStream fs = File.Open(filepath, FileMode.Create))
{
serializer.Serialize(fs, frameDataArray);
}
然后再次获取数据:
XmlSerializer serializer = new XmlSerializer(typeof(FrameData[]));
FrameData[] frameDataArray;
using (FileStream fs = File.Open(filepath, FileMode.Open))
{
frameDataArray = (FrameData[])serializer.Deserialize(fs);
}
如果XML序列化占用太多空间,您可以尝试使用JSON。有很多资源在线教你JSON序列化/反序列化,它与XML版本非常相似。我会推荐Nuget库JSON.NET,它很简单。
不能保证我写的代码完全按原样运行,但它应该指向正确的方向。