1. 程式人生 > >Unity3D各平臺路徑(包括手機內建儲存路徑、SD卡等等)

Unity3D各平臺路徑(包括手機內建儲存路徑、SD卡等等)

  關於Unity3D在各平臺上的路徑問題,網上有好多的資料,如下是比較好的參考資料:
1、http://www.manew.com/thread-23491-1-1.html
2、http://www.xuanyusong.com/archives/2656
  這裡我不詳細解釋和路徑的用法,只把各個路徑對應的位置和訪問方式總結一下。

1、Resources路徑
  Resources資料夾是Unity裡自動識別的一種資料夾,可在Unity編輯器的Project窗口裡建立,並將資源放置在裡面。Resources資料夾下的資源不管是否有用,全部會打包進.apk或者.ipa,並且打包時會將裡面的資源壓縮處理。載入方法是Resources.Load<T>(檔名),需要注意:檔名不包括副檔名,打包後不能更改Resources下的資源內容,但是從Resources資料夾中加載出來的資源可以更改。
2、Application.dataPath路徑
  這個屬性返回的是程式的資料檔案所在資料夾的路徑,例如在Editor中就是專案的Assets資料夾的路徑,通過這個路徑可以訪問專案中任何資料夾中的資源,但是在移動端它是完全沒用。
3、Application.streamingAssetsPath路徑
  這個屬性用於返回流資料的快取目錄,返回路徑為相對路徑,適合設定一些外部資料檔案的路徑。在Unity工程的Assets目錄下起一個名為“StreamingAssets”的資料夾即可,然後用Application.streamingAssetsPath訪問,這個資料夾中的資源在打包時會原封不動的打包進去,不會壓縮,一般放置一些資源資料。在PC/MAC中可實現對檔案的“增刪改查”等操作,但在移動端是一個只讀路徑。
4、Application.persistentDataPath路徑(推薦使用)
  此屬性返回一個持久化資料儲存目錄的路徑,可以在此路徑下儲存一些持久化的資料檔案。這個路徑可讀、可寫,但是隻能在程式執行時才能讀寫操作,不能提前將資料放入這個路徑。在IOS上是應用程式的沙盒,可以被iCloud自動備份,可以通過同步推送一類的助手直接取出檔案;在Android上的位置是根據Project Setting裡設定的Write Access路徑,可以設定是程式沙盒還是sdcard,注意:如果在Android設定儲存在沙盒中,那麼就必須root以後才能用電腦取出檔案,因此建議寫入sdcard裡。一般情況下,建議將獲得的檔案儲存在這個路徑下,例如可以從StreamingAsset中讀取的二進位制檔案或者從AssetBundle讀取的檔案寫入PersistentDatapath。
5、Application.temporaryCachePath路徑
  此屬性返回一個臨時資料的快取目錄,跟Application.persistentDataPath類似,但是在IOS上不能被自動備份。
6、/sdcard/..路徑
  表示Android手機的SD卡根目錄。
7、/storage/emulated/0/..路徑(這個路徑我查找了好久……)
  表示Android手機的內建儲存根目錄。

  以上各路徑中的資源載入方式都可以用WWW類載入,但要注意各個平臺路徑需要加的訪問名稱,例如Android平臺的路徑前要加"jar:file://",其他平臺使用"file://"。以下是各路徑在各平臺中的具體位置資訊:
Android平臺
Application.dataPath :  /data/app/xxx.xxx.xxx.apk
Application.streamingAssetsPath :  jar:file:///data/app/xxx.xxx.xxx.apk/!/assets
Application.persistentDataPath :  /data/data/xxx.xxx.xxx/files
Application.temporaryCachePath :  /data/data/xxx.xxx.xxx/cache
IOS平臺
Application.dataPath :                    Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data
Application.streamingAssetsPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data/Raw
Application.persistentDataPath :    Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents
Application.temporaryCachePath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Library/Caches
Windows Web Player
Application.dataPath :  file:///D:/MyGame/WebPlayer (即導包後儲存的資料夾,html檔案所在資料夾)
Application.streamingAssetsPath : 
Application.persistentDataPath : 
Application.temporaryCachePath : 
--------------------- 
作者:IQ007偉哥 
來源:CSDN 
原文:https://blog.csdn.net/u010377179/article/details/52922727 
版權宣告:本文為博主原創文章,轉載請附上博文連結!