您的位置:首页 > 移动开发 > Unity3D

Unity3D之文件读写文件

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

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

几个点需要注意到:

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

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

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

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

还有个建议。一定要事先写一个简单的日志输出类,可以用网上的输出到屏幕的插件,但是那个插件的缺点就是回溯过程的时候会稍微费劲点。而且不利于保护逻辑有bug时的现场记录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息