Unity中解析ini配置文件----INIParser
大家好,我是孙广东。 转载请注明出处:http://blog.csdn.net/u010019717
更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/space-uid-18602.html ??
Ini files
这个库可处理ini文件。 请注意,该文件可以是任何扩展名(如.txt)只要 文件内容是正确格式。
[Player] name=Arnold avatar=2 ; This section stored hi-scores [Hi-score] Top1=32900 Top2=12000 Top3=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();
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 // one ini.Open(Application.persistentDataPath + "save.txt"); // Read the score. If the section/key does not exist, default score to 10 int 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();
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。