關於Unity的幾種XML讀取方式


轉載自:http://www.360doc.com/content/16/1028/10/110467_602027195.shtml

第一種——Resources.Load

這種方式是筆者首先想到的方法,想要用這個方法,需要把xml文件放在Assest\Resources文件夾下,然后通過Resources.Load(文件名)的方式來讀取。

例:比如我在Asset\Resources下有個GateInfo.xml的文件。那么想要讀取這個文件,只要Resources.Load("GateInfo");即可讀取。

string data = Resources.Load("你的xml文件").ToString(); 
XmlDocument doc = new XmlDocument(); 
doc.LoadXml(data); 

PS:不要加后綴名!不要加后綴名!不要加后綴名!因為很重要所以說三次

但是這種方式在編輯器的情況下可以對文件進行“增刪改查”,但是在Build之后,就只能執行“查”(也就是讀)的操作了……

第二種——Application.persistentDataPath

這是筆者最后決定使用的方法,這種方法的優點是可以在移動上執行讀寫操作,關於存儲位置如下:

Windows : C:\Users\Dorameon\AppData\LocalLow\Doraking     其中Doraemon是筆者的電腦用戶名,Doraking為項目名

Android: /data/data/com.Doraking.Mission/files:  其中com.Doraking.Mission為你build時所設定的Bundle Identifier

iOS :Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents(PS:筆者沒有IOS設備,沒辦法實測,於是從參考資料里復制了下來)

例:

string SavePath = Application.persistentDataPath + "//GateInfo.xml";  

XmlDocument GateInfoDoc = new XmlDocument();  

GateInfoDoc.Load(SavePath);  

GateInfoDoc.Save(SavePath);  

PS:這個和Resources.Load不一樣,是獲取文件路徑,要加后綴名!

第三種——Application.dataPath

這種方法可以把xml文件直接放在根路徑下直接讀取,但是根據筆者查閱的資料,發現這種方式在移動端沒有對應的讀寫權限╮( ̄▽ ̄")╭

但是這種方法有一種改進措施。那么就是把xml文件放在Assest\StreamingAssets下,然后通過Application.streamingAssetsPath讀取

這樣在移動端上可以執行讀的操作了~

操作方法和第二種方法類似,這里筆者就不再重復描述了


免責聲明!

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



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