1.Resources 文件夾 少用
//資源卸載
/*
* Resources.UnloadAsset(obj):卸載非 GameObject類型的資源,會將內存中已加載資源及其克隆體卸載。
Destroy(obj):僅用於卸載GameObject類型的資源的克隆體。
DestroyImmediately(obj):卸載GameObject類型的資源,會將內存中已加載資源及其克隆體卸載,但該方法只能用在非編輯模式下,否則會報錯提示改爲DestroyImmediately(obj, true),然而編輯模式下使用該函數會連文件夾裏的原始Asset一併刪除。
*/
2:StreamingAssets 在移動端也是隻可讀的不能寫入數據 主要用來存放二進制文件。
//安卓下這兩個文件夾路徑相同
//Application.streamingAssetsPath = jar:file:///data/app/com.xxx.xxx-1.apk!/assets/ == "jar:file://"+Application.dataPath+"!assets/"
//Application.dataPath+"!assets/" = /data/app/com.xxx.xxx-1.apk!assets/
//Ios下
//Application.dataPath + "/Raw/" == @"file:///" + Application.streamingAssetsPath + "/"
//Editor WIN
//@"file:///" + Application.streamingAssetsPath + "/"
//"file:///" + Application.dataPath + "/StreamingAssets" + "/"
private string path = string.Empty;
public string GetSAPath()
{
//安卓平臺 加文件名
#if UNITY_ANDROID && !UNITY_EDITOR
path = Application.streamingAssetsPath + "/"
#elif UNITY_IPHONE && !UNITY_EDITOR
path = @"file:///" + Application.streamingAssetsPath + "/";
#elif UNITY_STANDLONE_WIN||UNITY_EDITOR
path = @"file:///" + Application.streamingAssetsPath + "/";
#endif
return path;
}
3:Application.persistentDataPath 這個目錄可讀可寫 一般存本地關卡等
用於存檔 直接使用 打包之前是沒有這個目錄的,直到應用程序在手機上安裝完畢纔有這個目錄。
該文件存在手機沙盒中,因爲不能直接存放文件,
1.通過服務器直接下載保存到該位置,也可以通過Md5碼比對下載更新新的資源
2.沒有服務器的,只有間接通過文件流的方式從本地讀取並寫入Application.persistentDataPath文件下,然後再通過 Application.persistentDataPath來讀取操作。
注:在Pc/Mac電腦 以及Android跟Ipad、ipone都可對文件進行任意操作,另外在IOS上該目錄下的東西可以被iCloud自動備份。 Application.persistentDataPath + "/tempDic", "testXml"
對應存儲路徑
Windows應用商店應用程序:application.persistentdatapath指向%userprofile%\appdata\local\packages\<productName>\localstate。
ios:application.persistentdatapath指向/var/mobile/containers/data/application/<guid>/documents。
android:application.persistentdatapath指向大多數設備上的/storage/emulated/0/android/data/<packagename>/文件(有些舊手機可能指向SD卡上的位置,如果存在),該路徑使用android.content.context.getexternalfilesdir解析
4:Application.temporaryCachePath來操作文件 同上但是 此屬性用於返回一個臨時數據的緩存目錄(不會備份並且清空緩存會清掉)
untiy 學習討論羣 184386599