Unity 从StreamingAssets文件夹和PersistentData文件夹 保存读取AssetBundle资源

时间:2023-03-09 07:38:37
Unity 从StreamingAssets文件夹和PersistentData文件夹 保存读取AssetBundle资源

项目中的资源一般我们打包成AssetBundle格式

方便我们加载和热更

而AssetBundle文件 一般保存在StreamingAssets文件夹或则PersistentData文件夹

首先我们看这两个文件夹有什么区别

StreamingAssets
可读取、不可写入

工程Assets根目录下StreamingAssets文件夹
文件夹内容不压缩打包到apk、ipa包内

PersistentData
可读取、可写入
沙盒目录,应用程序安装运行后才会出现

*StreamingAssets 不能写入  随包发包   适合存放一些初始化的AssetBundle资源 如 登入页 加载页等

*PersistentData 适合存放 运行程序下载的AssetBundle资源

然后我们看下这两个文件夹在各 平台 运行时 打印的 路径地址:

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

StreamingAssets在各工程路径(资源更新可直接替换对应的文件  实现快速打包或测试)

Unity C:\Users\zq\Desktop\Test\Assets\StreamingAssets
Eclipse C:\Users\zq\Desktop\eclipse\Test\assets
Xcode C:\Users\zq\Desktop\eclipse\Test\assets

在使用
AssetBundle.LoadFromFile
AssetBundle.LoadFromFileAsync
加载StreamingAssets文件夹里面的AssetBundle
要注意

Android  获得去方式为  Application.dataPath + "!assets"

其他平台   获取的方式为 Application.streamingAssetsPath

使用
WWW
加载AssetBundle
加载StreamingAssets文件夹里面的AssetBundle
要注意

Android  获得去方式为  Application.streamingAssetsPath

其他平台   获取的方式为 "file://" + Application.streamingAssetsPath

PersistentData文件夹获取的方式都为  Application.persistentDataPath