Unity資源文件夾介紹
1.編輯時
在Asset文件下存在Resources和SteamingAsset文件夾;
Resources
只讀不可修改,打包時直接寫死,沒有辦法通過熱更新替換資源;
可以存放任何格式的資源;
通過Resources.Load加載;
一般只存登錄UI,congfig配置等不會修改的文件;
//加載
GameObject go = Resources.Load<GameObject>(path);
Sprite sp = Resouces.Load(path,typeof(sprite)) as sprite;
TextAsset txt = Resources.Load(path) as TextAsset;
SteamingAssets
存放打包后Unity打包后的資源,也就是我說的AssetBundle(ab包);
可讀可寫,打包后移動端不能使用File類讀取(用過www讀取streamingAssetspath數據拷貝到persistentDataPath);
2.安裝后
Application.dataPath
包含游戲數據文件夾的路徑,app程序包安裝路徑(不常用);
1.UnityEditor——默認Assets——可讀可寫 using StreamReader/StreamWriter/異步
2.Andriod——data/app/xxx.apk——不可讀不可寫
3.IOS——Application/.....app/Data——可讀不可寫(讀沒意義)
Application.streamingAssetsPath
數據流換成目錄,外部數據文件(二進制,AssetsBundle.csv、數據裸露不加密);
1.除了Andriod都可讀可寫,使用WWW或者System.IO都可以;
2.Andriod只讀,只能用WWW讀寫——第三方壓縮/解壓庫實現讀寫(待研究);
3.安裝包資源目錄,不可修改;
Application.presistentDataPath
持久化存儲目錄,應用更新、覆蓋安裝都不會清除;
1.全平台可讀可寫——stream和file都可以讀寫;
2.熱更新資源存放目錄;
Application.temporaryCachePath
臨時換成目錄,可讀可寫(只有ios常用);
3.AssetBundle
資源壓縮文件(ab包),非路徑,一種壓縮文件的格式;
通過的File讀取后,解析成需要的對象;
AssetBundle ab = AssetBundle.LoadFromFile(path);
GameObject go = ab.LoadAsset<GameObject>(name);