Unity中解析ini設定檔----INIParser,unity----iniparser

來源:互聯網
上載者:User

Unity中解析ini設定檔----INIParser,unity----iniparser

大家好,我是孫廣東。   轉載請註明出處:http://blog.csdn.net/u010019717

更全的內容請看我的遊戲蠻牛地址:http://www.unitymanual.com/space-uid-18602.html 

Ini files

這個庫可處理ini檔案。 請注意,該檔案可以是任何副檔名(如.txt)只要 檔案內容是正確格式。

[Player]name=Arnoldavatar=2; This section stored hi-scores[Hi-score]Top1=32900Top2=12000Top3=4700

那怎麼使用這個庫呢?

1. 添加 “INIParser.cs” 到 Unity.
2. 聲明一個 INIParser 對象並使用它.

INIParser ini = new INIParser();ini.Open(“C:/Test.ini”);ini.WriteValue(“Player”,“Name”,“Arnold”);ini.Close();
多個Ini檔案時

    請注意,對於每個INIParser執行個體,你在任何一個時間只能有一個open的ini檔案,你可以開啟下一個ini檔案,但是之前您必須使用Close()。

INIParser ini = new INIParser();ini.Open(“C:/Test.ini”);ini.WriteValue(“Player”,“Name”,“Arnold”);ini.WriteValue(“Hi-score”,“Top3”,1000);ini.Close();ini.Open(“C:/Test2.ini”);ini.WriteValue(“Position”,“x”,2);ini.WriteValue(“Position”,“y”,3);ini.Close();


Methods方法

Open(string path)

Open ini_file關於 reading 和 writing. 如果這個檔案不存在將被建立。. 一旦你完成了reading/writing 記得調用函數 Close( )。來儲存這個ini檔案的所有改變。

Open(TextAsset asset)

Open 一個 TextAsset 作為 ini_file. 如果做了任何更改,則副本將儲存在Persistent Data Path持久性資料的路徑下。這個函數會一直看著Persistent Data Path持久資料路徑,如果有任何修改的TextAsset的副本,實際上看遊戲中的文本資源套件之前首先看到在Persistent Data Path持久資料路徑的變化。


OpenFromString(string str)

從字串建立ini檔案和開啟它用於進行讀/寫。正確格式化的字串作為ini檔案(即:sections部分,keys鍵和values值) 否則將無法正確建立ini檔案。注意,這個ini檔案是暫時的,只存在於記憶體中。但是你可以使用ToString()返回的字串可以被儲存到伺服器或磁碟的完整的ini檔案。


string ToString(string str)

返回完整的  ini file 字串。


Close()

一旦你完成讀取或寫入任何開啟的ini檔案,應調用此方法。ini檔案資料存放區在記憶體中,直到調用此方法,這一資料被寫入到磁碟。


string ReadValue(string section, string key, string default)

(重載: bool, int, long, double, byte[], DateTime)

從ini_file中讀取值。 如果值不存在,(預設值)將被返回。


WriteValue(string section, string key, string value)
(overload: bool, int, long, double, byte[], DateTime)
寫入 一個值到 ini_file

SectionDelete(string section)

刪除整個ini檔案的section部分,這也將刪除與之關聯的所有鍵/值對。

bool IsSectionExists(string section)

檢查是否存在ini檔案中的section 節。您不需要檢查,以防止錯誤,因為如果你ReadValue從一個不存在的section 節,ReadValue將只返回預設值。然而,有時它可以是有用的如果ini檔案已儲存的具體資料。

KeyDelete(string section, string key)

刪除被選擇的  key (還有和它相關的 value) 從 ini file.中

bool IsKeyExists(string section, string key)

檢查以查看是否有指定的鍵存在於ini檔案。您不需要檢查,以防止錯誤,因為如果你ReadValue一個不存在的節,ReadValue將只返回預設值。然而,有時它可以是有用的如果ini檔案已儲存的具體資料。

Open(TextAsset asset)

TextAsset 是read-only, 所以任何的修改是放在sandbox area 沙箱地區(persistentDataPath).

Example code:

INIParser ini = new INIParser();TextAsset asset = Resource.Load("TextAssetExample") as TextAsset;ini.Open(asset);ini.WriteValue("Player","Name","Arnold");ini.Close();

有時候,你會想使用TextAsset文本資源作為ini檔案。遊戲包中包含TextAsset文本資源,因此它在每個平台上的讀/寫操作可靠。如果你使用streaming assets流的資產作為ini檔案,有時你會達到以讀/寫入權限錯誤移動平台上。你必須確保該TextAsset文本資源存在,否則任何讀/寫操作將不會正確工作。

Credits

library 是由STA INIFile改編而成,仿照遊戲製作室INI檔案系統。



Example code:

Save 和  load game data

INIParser ini = new INIParser();// Open the save file. If the save file does not exist, INIParser automatically create// oneini.Open(Application.persistentDataPath + "save.txt");// Read the score. If the section/key does not exist, default score to 10int score = ini.ReadValue("Player","Score",10);score += 100;ini.WriteValue("Player","Score",score);ini.Close();

在這場比賽第一次運行時,會發生什嗎?

這段代碼從儲存檔案讀取比分,增加100,並儲存新的得分值。

Open()將檢測到“save.txt”不存在,所以空白“save.txt”將被建立。 然後,分數將被讀取。自從“save.txt”是空白的,分數不能在ini檔案中找到,所以它預設為10。然後,新的分數的值寫入ini檔案。


Save 和 load game data 從 TextAsset檔案中

INIParser ini = new INIParser();TextAsset asset = Resource.Load("TextAssetExample") as TextAsset;ini.Open(asset);int score = ini.ReadValue("Player","Score",10);score += 100;ini.WriteValue("Player","Score",score);ini.Close();


有時候,你會想使用TextAsset文本資源作為ini檔案。遊戲包中包含TextAsset文本資源,因此它在每個平台上的讀/寫操作可靠。如果你使用streaming assets流的資產作為ini檔案,有時你會達到以讀/寫入權限錯誤移動平台上。你必須確保該TextAsset文本資源存在,否則任何讀/寫操作將不會正確工作。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.