项目中打AssetBundle一般会根这两个文件夹挂勾。
对比分析:
StreamingAssets:可读取、不可写入;Assets根目录下的StreamingAssets文件夹,文件夹内容不压缩打包到apk、ipa包内。
PersistentData:可读取、可写入;沙盒目录,应用程序安装运行后才会出现。
所以由上可以看出,StreamingAssets没有PersistentData自由,但是在应用安装前是没有PersistentData目录的。所以在我们项目内的做法是把AB资源首先压缩到StreamingAssets里,然后安装后再解压到PersistentData目录中,PersistentData目录也用于存储服务器等下载的资源,俗称下载目录。
两个目录在各平台的路径地址:
StreamingAssets | |
WindowsEditor | C:/Users/zq/Desktop/Test/Assets/StreamingAssets(工程目录/Assets/StreamingAssets) |
OSXEditor | /Users/zouqiang/Desktop/Test/Assets/StreamingAssets(工程目录/Assets/StreamingAssets) |
Android | jar:file:///data/app/com.Company.Test-1.apk!/assets(安装目录/assets) |
IPhonePlayer | /var/containers/Bundle/Application/5C9D81B5-2A21-45BC-B6DC-12B704976D22/Test.app/Data/Raw |
PersistentData | |
WindowsEditor | C:/Users/zq/AppData/LocalLow/DefaultCompany/Test |
OSXEditor | /Users/zouqiang/Library/Application Support/DefaultCompany/Test |
Android | /storage/emulated/0/Android/data/com.Company.Test/files |
IPhonePlayer | /var/mobile/Containers/Data/Application/F96BACED-63D5-45AE-B2A7-738A87545A8F/Documents |
使用注意:
在使用AssetBundle.LoadFromFile同步或异步加载的StreamingAssets里的AssetBundle的时候:
安卓使用路径: Application.dataPath + "!assets"
其他平台:"file://" + Application.streamingAssetsPath
安卓平台若想使用Application.streamingAssetsPath,则需要用www加载。