• Unity 中System.Runtime.InteropServices读取配置文件


    首先得创建一个读取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了,当然你喜欢的话还可以对基类就行添加函数,添加对一整个大类型直接读取,这都是可以的,不过基本上也够用了。

  • 相关阅读:
    1040 最大公约数之和
    51nod 1215 数组的宽度
    51nod 1423 最大二“货” 单调栈
    51nod 1437 迈克步 单调栈
    1564 区间的价值
    51nod 1294 修改数组
    51nod1693 水群 最短路
    51nod1052 最大M子段和
    我不管,这就是水题《1》
    河工大校赛 Hmz 的女装 http://218.28.220.249:50015/JudgeOnline/problem.php?id=1265
  • 原文地址:https://www.cnblogs.com/AranNice/p/16382185.html
Copyright © 2020-2023  润新知