#游戏unity-VR场景漫游#将数据存储为本地二进制文件

博客介绍了在Unity VR场景漫游中如何记录并存储每一帧手柄的运动位置坐标。通过学习本地二进制存储,作者探讨了三种不同的存储方法:Stream::Write/WriteLine、Serializable标记+BinaryFormatter或XML、以及自定义数据解析使用BinaryWriter。最后,作者分享了一种可扩展的数据结构基类,用于实现位置坐标的本地二进制文件存储。
摘要由CSDN通过智能技术生成

意识到识别了手柄运动方向后,需要记录下来每一帧的运动位置坐标,只有这样,才能进一步对轨迹围成的图形进行分析。那么,最方便的就是存成本地二进制文件。
于是学习了有关聊天记录的本地二进制存储的博客,只需要把其中的聊天记录的数据类换成位置坐标的数据结构就可以了。


储存为本地二进制文件的几种方式——
一、Stream::Write,Stream::WriteLine

这个方法是打开数据流就开始写字符串,可以指定长度写,也可以一行一行的写。具体参考http://blog.csdn.net/dingxiaowei2013/article/details/19084859和雨松大神的http://www.xuanyusong.com/archives/1069

这种方法最简单,一行一行的写,一行一行的读,都已String的形式写下来,可以中午可以英文。

缺点是不是二进制文件,不好做数据截断获取,比如你想把一个数据包保存下来,中间的各种数据需要你在字符串中写标记符进行切分。

二、[System.Serializable]标记,BinaryFormatter或xml写入

把自己的数据类型标记成可序列化数据二进制文件,用BinaryFormatter来进行写入读取操作。

这种方法也比较简单,数据按数据结构存放,数据不用做解析直接按数据结构使用

缺点是只能存放一个数据,每次写入读取都是一个数据,并不适合大多数情况

三、自己做数据解析,BinaryWriter写入

可以定义一个数据结构,这个结构里面的确定这个数据结构里的每个变量的数据类型,如果有字符串还需要获取字符串长度放在字符串前面

也就是一般网络传输的方式。

这种方法比较麻烦,需要自己定义数据结构和确定好每个数据结构的变量数据类型,字符串需要计算长度,但是这种方法可以适合任何场景。并且数据不需要换行只管一直写入,

而且这种方面解决上面两个方式的缺点

这个方法还有一个缺点是如果数据结构改了需要改读取和写入数据的方法。
因为想着写入本地序列化不只是我一个需求,需要可拓展性。
跟进上面这些我对类结构进行了一些安排
下面是代码和解释——
数据结构基类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值