首先得创建一个读取ini配置文件的基类,创建好一个后,后面项目需要都可以直接拿来用了
创建基类得引用命名空间 System.Runtime.InteropServices
下面为基类代码:
public class MyIni
{
public string path;//ini文件的路径
public MyIni(string path)
{
this.path=path;
}
[DllImport("kernel32")]
public static extern long WritePrivateProfileString(string section,string key,string value,string path);
[DllImport("kernel32")]
public static extern int GetPrivateProfileString(string section,string key,string deval,StringBuilder stringBuilder,int size,string path);
//写入ini文件
public void WriteIniContent(string section,string key,string value)
{
WritePrivateProfileString(section,key,value,this.path);
}
//读取Ini文件
public string ReadIniContent(string section,string key)
{
StringBuilder temp=new StringBuilder(255);
int i=GetPrivateProfileString(section,key,"",temp,255,this.path);
return temp.ToString();
}
//判断路径是否正确
public bool IsIniPath()
{
return File.Exists(this.path);
}
}
函数的使用,得先创建一个txt文本文件然后写入内容
内容格式为大标题“[]”,对应大标题下的内容 “名字(相当于key值)=value(使用中文的话可能会有问题,需要转码,中文的话一般使用xml文档)”
[Time]
time=10
[Speed]
speed=5
类似这样的写法,然后保存为ini文件,拖拽到项目中StreamingAssets位置,一般都是放在这个路径
下面是函数的调用:
public class IniDemo
{
MyIni ini;
private int time=0;
private float speed=0;
void Start()
{
//获取ini文件
ini=new MyIni(Application.StreamingAssets+"/Setting.ini");
//获取Ini文件Time类型下的time对应的数值
time=ini.ReadIniContent("Time","time");
speed=ini.ReadIniContent("Speed","speed");
//写入Count类型count值对应的数值(如果存在了相同的key会覆盖原来key的内容)
ini.WritePrivateProfileString("Count","count","5");
}
}
基本上一个简单的ini配置文件的使用就OK了,当然你喜欢的话还可以对基类就行添加函数,添加对一整个大类型直接读取,这都是可以的,不过基本上也够用了。