關於Unity中文件讀取


  存儲:

    在程序發布后文件的存放有兩種,第一種是打包到Uniyt的資源包中(*.unity3D),第二種就是把文件存放在一個特殊的目錄如:StreamingAssets,這個目錄的東西Unity不會打包任何資源包中(但讓除非你手動打包),但是發布的時候這個文件夾會被打包進程序中,一起發布。

格式:

    通過WWW加載:

      一種是純文本格式,如 txt,xml,csv等,這種純文本試用原始擴展名即可。

      一種是二進制,如果文件需要壓縮,加密等等操作,需要把文件的擴展名改為.bytes.

     使用WWW加載時需要注意編碼格式為 utf8,如果它不能解析為utf8字符串,文本導入器會盡量帶nonascii字。

代碼中修改xml編碼格式:

byte[] encodingData = Encoding.UTF8.GetBytes(m_strData);
      System.IO.MemoryStream ms = new System.IO.MemoryStream(encodingData);
      ms.Flush();
      ms.Position = 0;
      document.Load(ms)

通過C#加載:

       任意格式.

讀取:

    第一種:

   這種方法也分兩種,一種是放到Resources文件夾下當Untiy 發布的時候會把這個文件夾下的所有資源打包成一個默認資源包一起發布出去,讀取時用Resources類讀取.

另外一種是自己打包然后通過WWW加載AssetBundle,最后通過AssetBundle中的函數加載與Resources方法類似。

   第二種:

   這種方法需要把文件放到StreamingAssets目錄下,在不同的平台上面 (Windows, Ios ,Android),該目錄最終發布的位置不同,所以讀取的方法也不同。

  Windows Ios Android
C# 支持 支持 不支持
C#路徑 Application.streamingAssetsPath+”/Myfile.txt Application.streamingAssetsPath+”/Myfile.txt  
       
WWW 支持 支持 支持
WWW路徑 "file://"+Application.streamingAssetsPath+”/Myfile.txt "file://"+Application.streamingAssetsPath+”/Myfile.txt Application.streamingAssetsPath+”/Myfile.txt

WWW是異步加載所以執行加載命令式不能直接執行讀取解析操作,

要等待

var www = new WWW (filePath);

yield www;

result = www.text;


免責聲明!

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



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