unity 在移动平台中,文件操作路径详解
2015-03-16 17:09
246 查看
今天,这篇文章其实是个老生常谈的问题咯,在网上类似的文章也比比皆是,在此我只是做个详细总结方便大家能够更好、更快的掌握,当然,如有不足的地方 欢迎指正!!!
相信大家在开发过程中,难免会保存一些文件在客户端进行本地化操作。
如:配置文件,状态文件,Assetbundle文件等等...
最近总有人问我:
1.保存了一个xml在客户端,能读取里面的数据,可是不能修改,甚至一修改就报错...
2.我在电脑上操作文件(xml、text、Assetbundle、json)都没问题,可是生成打包生成apk、ipa运行就出现各种问题,
要么数据读不到,要么数据不能操作...
这些问题的病症到底出现在什么地方?又该如何解决?
其实,就是对文件保存的路径在平台间的适用性,有些路径在各个平台上是不能通用的。
在此我对unity中路径操作做以下几种总结:
一.在项目根目录中创建Resources文件夹来保存文件。
可以使用Resources.Load("文件名字,注:不包括文件后缀名");把文件夹中的对象加载出来。
注:此方可实现对文件实施“增删查改”等操作,但打包后不可以更改了。
二.直接放在项目根路径下来保存文件
在直接使用Application.dataPath来读取文件进行操作。
注:移动端是没有访问权限的。
三.在项目根目录中创建StreamingAssets文件夹来保存文件。
1.可使用Application.dataPath来读取文件进行操作。
[C#] 纯文本查看 复制代码
2.直接使用Application.streamingAssetsPath来读取文件进行操作。
注:此方法在pc/Mac电脑中可实现对文件实施“增删查改”等操作,但在移动端只支持读取操作。
四.使用Application.persistentDataPath来操作文件(荐)
该文件存在手机沙盒中,因为不能直接存放文件,
1.通过服务器直接下载保存到该位置,也可以通过Md5码比对下载更新新的资源
2.没有服务器的,只有间接通过文件流的方式从本地读取并写入Application.persistentDataPath文件下,然后再通过Application.persistentDataPath来读取操作。
注:在Pc/Mac电脑 以及Android跟Ipad、ipone都可对文件进行任意操作,另外在IOS上该目录下的东西可以被iCloud自动备份。
五.使用Application.temporaryCachePath来操作文件
操作方式跟上面Application.persistentDataPath类似。除了在IOS上不能被iCloud自动备份。
下图是几种文件在Pc中路径的具体位置
<ignore_js_op>
其实,在前面我已经发过一篇《Unity中的Path对应各平台中的Path》的文章,大家可以看看,详细了解下unity在移动平台中的可操作的具体路径。
有直接给出各平台对应路径哟,方便调试查看。
好了,unity路径的使用以及注意点都总结了,现在还是送点干料给大家吧,里面都有详细注释,都是开发中常用的东西
FileHelper.cs
[C#] 纯文本查看 复制代码
2.随机操作类
RandomHelper.cs
[C#] 纯文本查看 复制代码
相信大家在开发过程中,难免会保存一些文件在客户端进行本地化操作。
如:配置文件,状态文件,Assetbundle文件等等...
最近总有人问我:
1.保存了一个xml在客户端,能读取里面的数据,可是不能修改,甚至一修改就报错...
2.我在电脑上操作文件(xml、text、Assetbundle、json)都没问题,可是生成打包生成apk、ipa运行就出现各种问题,
要么数据读不到,要么数据不能操作...
这些问题的病症到底出现在什么地方?又该如何解决?
其实,就是对文件保存的路径在平台间的适用性,有些路径在各个平台上是不能通用的。
在此我对unity中路径操作做以下几种总结:
一.在项目根目录中创建Resources文件夹来保存文件。
可以使用Resources.Load("文件名字,注:不包括文件后缀名");把文件夹中的对象加载出来。
注:此方可实现对文件实施“增删查改”等操作,但打包后不可以更改了。
二.直接放在项目根路径下来保存文件
在直接使用Application.dataPath来读取文件进行操作。
注:移动端是没有访问权限的。
三.在项目根目录中创建StreamingAssets文件夹来保存文件。
1.可使用Application.dataPath来读取文件进行操作。
[C#] 纯文本查看 复制代码
注:此方法在pc/Mac电脑中可实现对文件实施“增删查改”等操作,但在移动端只支持读取操作。
四.使用Application.persistentDataPath来操作文件(荐)
该文件存在手机沙盒中,因为不能直接存放文件,
1.通过服务器直接下载保存到该位置,也可以通过Md5码比对下载更新新的资源
2.没有服务器的,只有间接通过文件流的方式从本地读取并写入Application.persistentDataPath文件下,然后再通过Application.persistentDataPath来读取操作。
注:在Pc/Mac电脑 以及Android跟Ipad、ipone都可对文件进行任意操作,另外在IOS上该目录下的东西可以被iCloud自动备份。
五.使用Application.temporaryCachePath来操作文件
操作方式跟上面Application.persistentDataPath类似。除了在IOS上不能被iCloud自动备份。
下图是几种文件在Pc中路径的具体位置
<ignore_js_op>
其实,在前面我已经发过一篇《Unity中的Path对应各平台中的Path》的文章,大家可以看看,详细了解下unity在移动平台中的可操作的具体路径。
有直接给出各平台对应路径哟,方便调试查看。
好了,unity路径的使用以及注意点都总结了,现在还是送点干料给大家吧,里面都有详细注释,都是开发中常用的东西
本帖隐藏的内容
1.对文件的操作类,主要就是文流读取操作的一些东西(包括Assetbundle)FileHelper.cs
[C#] 纯文本查看 复制代码
RandomHelper.cs
[C#] 纯文本查看 复制代码
相关文章推荐
- (转) unity 在移动平台中,文件操作路径详解
- unity 在移动平台中,文件操作路径详解
- (转) unity 在移动平台中,文件操作路径详解
- (转) unity 在移动平台中,文件操作路径详解
- unity 在移动平台中,文件操作路径详解
- unity 在移动平台中,文件操作路径详解 (转)
- unity 在移动平台中,文件操作路径详解
- unity 在移动平台中,文件操作路径详解
- unity 在移动平台中,文件操作路径详解
- Unity在移动平台中,文件操作路径详解
- unity 在移动平台中,文件操作路径详解
- unity 在移动平台中,文件操作路径详解
- Unity在移动平台中的文件操作路径详解
- unity 在移动平台中,文件操作路径详解
- Unity 关于安卓和各平台读写本地json文件,WWW读取本地文件,Unity各路径API(persistentDataPath,StreamingAssets文件夹),目前较完整的详解
- UNITY移动平台上的手势操作——旋转、缩放
- 源文件名长度大于文件系统支持的长度。请尝试将其移动到具有较短路径名称的位置,或者在执行此操作前尝试将其重命名为较短的名称--解决办法
- unity中的文件存储路径与各平台(Android,iOS)的关系
- 【转】unity跨平台文件操作详解
- Unity对于移动平台动态读取外部文件