C#读取和写入对象名称和对象坐标位置

时间:2014-05-12 02:48:15

标签: c#

我正在做一些逐帧记录对象位置的动画。我想将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;
        }

1 个答案:

答案 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,它很简单。

不能保证我写的代码完全按原样运行,但它应该指向正确的方向。