Unity3D之文件讀寫文件

爲了完成資源的讀取和保存,這裏做了好多的實驗,也參考了很多的文章和帖子,這裏十分感謝雨鬆的網站,很多時候都能在那裏找到思路和相應的回答。希望這個網站能一直辦下去。

開始正文,爲了完成上述功能,自己本地做了很多實驗,爲了統一資源版本,我想到的辦法就是把所有的AssetsBundle文件都保存到unity的沙盒目錄下,即Application.persistentDataPath這個目錄下。從StreamingAssetsPath目錄將文件拷貝出來就成了一個問題,由於StreamingAssetsPath這個的只讀屬性,能使用的辦法只有一個,用www把目錄中的2進制文件先加載進來,再把獲取到的資源使用Stream的方式將文件寫到persistentDataPath目錄下。用了兩天,查閱了大量的文章及回覆,揪掉了好多頭髮才把這個問題搞定。這裏只寫具體遇到的問題,代碼的話就不方便上傳了。

幾個點需要注意到:

1、從StreamingAssetsPath讀取的時候只能使用WWW的方式,這就限定了讀取時只能使用協同方法(4.5.2以下版本,這個版本號以上的unity暫時沒有研究過)。

2、在Android真機上讀取的時候需要注意讀取文件的路徑,網上有很多解釋,這裏就不寫了。

3、寫文件的時候千萬不要把寫文件的操作也放到WWW讀取的協同方法裏。否則很容易寫文件的操作會執行的不成功,雖然不報錯,文件也能創建,但是文件是空的。

以上就是這兩天的深刻體會。因爲要做成管理器,所以這部分代碼寫的很痛苦,邏輯組織起來也比較討厭,尤其在真機上測試的時候簡直就是災難。

還有個建議。一定要事先寫一個簡單的日誌輸出類,可以用網上的輸出到屏幕的插件,但是那個插件的缺點就是回溯過程的時候會稍微費勁點。而且不利於保護邏輯有bug時的現場記錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章