unity3d各平台的路径问题

注意:PC端导出后不能把exe文件和相关的数据文件夹拷贝到带中文的文件目录下,不然无法加载要加载的文件。
Unity3D的路径问题。我们常用的是以下四个路径:
Application.dataPath 
Application.streamingAssetsPath 
Application.persistentDataPath 
Application.temporaryCachePath 
根据测试,详细情况如下:
一.在项目根目录中创建Resources文件夹来保存图片
可以使用Resources.Load("文件名字,注:不包括文件后缀名");把文件夹中的对象加载出来。
注:此方可实现对文件实施“增删查改”等操作,但打包后不可以更改了。

二.直接放在项目根路径下来保存文件
在直接使用Application.dataPath来读取文件进行操作。
注:移动端是没有访问权限的。

三.在项目根目录中创建StreamingAssets文件夹来保存文件。
1.可以使用Application.dataPath来读取文件进行操作。
[C#]
#if UNITY_EDITOR
string filepath=Application.dataPath+"/StreamingAssets"+"/photo.jpg";
#elif UNITY_IPHONE
string filepath=Application.dataPath+"/Ray"+"/photo.jpg";
#elif UNITY_android
string filepath="jar:file://"+Application.dataPath+"!/assets/"+"/photo.jpg";
#endif
2.直接使用Application.streamingAssetsPath来读取文件进行操作。
注:此方法在pc/Mac电脑中可以实现对文件实施“增删查改”等操作,但在移动端只支持读取操作。

四.使用Application.streamingAssetsPath来操作文件(荐)。
改文件存在手机沙盒中,因为不能直接存放文件,
1.通过服务器直接下载保存到该位置,也可以通过Md5码比对下载更新新的资源
2.没有服务器的,只有间接通过文件流的方式从本地读取并写入Application.persistentDataPath文件下,然后在通过Application.persistentDataPath来读取操作。
注:在Pc/Mac电脑以及Android跟Ipad、iphone都可对文件进行任意操作,另外在IOS上对该目录下的东西可以被iCloud自动备份。

五.使用Application.temporaryCachePath来操作文件
操作方式跟上面Application.persistentDataPath类似。除了在IOS上不能被iCloud自动备份。

下图是几种文件在Pc中路径的具体位置

猜你喜欢

转载自blog.csdn.net/zxy13826134783/article/details/80305760