存儲:
在程序發布后文件的存放有兩種,第一種是打包到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 ” |