Unity各平台下的Application.xxxxPath解析

Unity各平台下的Application.xxxxPath解析

前言

Unity下有Application.dataPath,Application.streamingAssetsPath,Application.persistentDataPath,Application.temporaryCachePath等路径。我们经常要去读写这些路径,或者进到目录里去查看存在什么文件。所以下面主要从 读写权限路径 来解析这些路径名。

权限

路径 意思 读写权限 是否在包内
Application.dataPath Assets目录 只读
Application.streamingAssetsPath Assets/流资源目录 只读
Application.persistentDataPath 持久化目录 可读可写
Application.temporaryCachePath 临时缓存目录 只读

解析

基于只有Application.persistentDataPath拥有可读可写的特性,一般存储东西或者下载热更新文件都是放在这个目录里面的。
我们平常会把一些资源文件先放在Application.streamingAssetsPath里,安装后再拷贝进Application.persistentDataPath里,为什么不直接放进Application.persistentDataPath里呢。

因为Application.persistentDataPath,它的路径不在包内,得安装后才存在,所以得这样做。

各平台下的路径

windows

路径 路径格式 路径解析 路径举例
Application.dataPath <path to project folder>/Assets 项目的Assets目录 F:/Learn/TurnBaseDemo/Assets
Application.streamingAssetsPath 编辑器下:<path to project folder>/Assets/StreamingAssets PC包:{项目输出路径}/{ProductName_Data/StreamingAssets} 项目的Assets/StreamingAssets 注意:编辑器和PC包不一样 F:/Learn/TurnBaseDemo/Assets/StreamingAssets
Application.persistentDataPath %userprofile%\AppData\LocalLow\<companyname>\<productname> %userprofile% 一般等于C:/Users/PC,companyname=公司名字,productname=产品名字 C:/Users/PC/AppData/LocalLow/super41/TurnBaseDemo
Application.temporaryCachePath %userprofile%\AppData\Local\Temp<companyname><productname> 同上 C:/Users/PC/AppData/Local/Temp/super41/TurnBaseDemo

安卓

路径 路径格式 路径解析
Application.dataPath /data/app/<packageName>-xxxxxx==/base.apk 在压缩包里面
Application.streamingAssetsPath jar:file:///data/app/<packageName>-xxxxxx==/base.apk !/assets 使用UnityWebRequest 或www来访问该目录的资源
Application.persistentDataPath /storage/emulated/0/Android/data/<packagename>/files packagename = 包名
Application.temporaryCachePath /storage/emulated/0/Android/data/<packagename>/cache 同上

解析

一般我们用 文件管理器 或 adb命令 进对应的路径查看一些文件有没存在。这里比较有意义的路径是Application.persistentDataPath和Application.temporaryCachePath,因为这两个路径能进去查看,
另外两个没Root权限一般访问不了,也不需要访问,一般都是代码上的访问。

IOS

路径 路径格式 路径解析
Application.dataPath /var/containers/Bundle/Application/app sandbox/xxx.app/Data app sandbox 代指应用程序沙盒
Application.streamingAssetsPath /var/containers/Bundle/Application/app sandbox/xxx.app/Data/Raw 同上
Application.persistentDataPath /var/mobile/Containers/Data/Application/app sandbox/Documents 同上
Application.temporaryCachePath /var/mobile/Containers/Data/Application/app sandbox/Library/Caches 同上

猜你喜欢

转载自blog.csdn.net/aaa27987/article/details/122337859