Unity3D文件讀取


Resources

是作為一個Unity3D的保留文件夾出現的,也就是如果你新建的文件夾的名字叫Resources,那么里面的內容在打包時都會被無條件的打到發布包中。它的特點簡單總結一下就是:

  1. 只讀,即不能動態修改。所以想要動態更新的資源不要放在這里。
  2. 會將文件夾內的資源打包集成到.asset文件里面。因此建議可以放一些Prefab,因為Prefab在打包時會自動過濾掉不需要的資源,有利於減小資源包的大小。
  3. 主線程加載。
  4. 資源讀取使用Resources.Load()

StreamingAssets

要說到StreamingAssets,其實和Resources還是蠻像的。同樣作為一個只讀的Unity3D的保留文件夾出現。不過兩者也有很 大的區別,那就是Resources文件夾中的內容在打包時會被壓縮和加密。而StreamingAsset文件夾中的內容則會原封不動的打入包中,因此 StreamingAssets主要用來存放一些二進制文件。下面也同樣做一個簡單的總結:

  1. 同樣,只讀不可寫。
  2. 主要用來存放二進制文件。
  3. 只能用過WWW類來讀取。

AssetBundle

關於AssetBundle的介紹已經有很多了。簡而言之就是把prefab或者二進制文件封裝成AssetBundle文件(也是一種二進制)。但是也有硬傷,就是在移動端無法更新腳本。下面簡單的總結下:

  1. Unity3D定義的一種二進制類型。
  2. 最好將prefab封裝成AseetBundle,不過上面不是才說了在移動端無法更新腳本嗎?那從Assetbundle中拿到的Prefab上掛的腳本是不是就無法運行了?也不一定,只要這個prefab上掛的是本地腳本,就可以。
  3. 使用WWW類來下載。

PersistentDataPath

看上去它只是個路徑呀,可為什么要把它從路徑里面單獨拿出來介紹呢?因為它的確蠻特殊的,這個路徑下是可讀寫。而且在IOS上就是應用程序的沙盒, 但是在Android可以是程序的沙盒,也可以是sdcard。並且在Android打包的時候,ProjectSetting頁面有一個選項Write Access,可以設置它的路徑是沙盒還是sdcard。下面同樣簡單的總結一下:

  1. 內容可讀寫,不過只能運行時才能寫入或者讀取。提前將數據存入這個路徑是不可行的。
  2. 無內容限制。你可以從StreamingAsset中讀取二進制文件或者從AssetBundle讀取文件來寫入PersistentDataPath中。
  3. 寫下的文件,可以在電腦上查看。同樣也可以清掉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM