Unity3D之文件读写文件

为了完成资源的读取和保存,这里做了好多的实验,也参考了很多的文章和帖子,这里十分感谢雨松的网站,很多时候都能在那里找到思路和相应的回答。希望这个网站能一直办下去。

开始正文,为了完成上述功能,自己本地做了很多实验,为了统一资源版本,我想到的办法就是把所有的AssetsBundle文件都保存到unity的沙盒目录下,即Application.persistentDataPath这个目录下。从StreamingAssetsPath目录将文件拷贝出来就成了一个问题,由于StreamingAssetsPath这个的只读属性,能使用的办法只有一个,用www把目录中的2进制文件先加载进来,再把获取到的资源使用Stream的方式将文件写到persistentDataPath目录下。用了两天,查阅了大量的文章及回复,揪掉了好多头发才把这个问题搞定。这里只写具体遇到的问题,代码的话就不方便上传了。

几个点需要注意到:

1、从StreamingAssetsPath读取的时候只能使用WWW的方式,这就限定了读取时只能使用协同方法(4.5.2以下版本,这个版本号以上的unity暂时没有研究过)。

2、在Android真机上读取的时候需要注意读取文件的路径,网上有很多解释,这里就不写了。

3、写文件的时候千万不要把写文件的操作也放到WWW读取的协同方法里。否则很容易写文件的操作会执行的不成功,虽然不报错,文件也能创建,但是文件是空的。

以上就是这两天的深刻体会。因为要做成管理器,所以这部分代码写的很痛苦,逻辑组织起来也比较讨厌,尤其在真机上测试的时候简直就是灾难。

还有个建议。一定要事先写一个简单的日志输出类,可以用网上的输出到屏幕的插件,但是那个插件的缺点就是回溯过程的时候会稍微费劲点。而且不利于保护逻辑有bug时的现场记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值