Unity读取txt文件并且用字典来使用txt里面的信息

xiaoxiao2021-02-28  82

代码:

using UnityEngine; using System.Collections; using System.Collections.Generic; public class ObjectsInfo : MonoBehaviour {     public static ObjectsInfo _instance;     public TextAsset objectsInfoListText;           private Dictionary<int,ObjectInfo> objectInfoDict=new Dictionary<int, ObjectInfo>();//定义一个字典     void Awake()     {     _instance=this;      ReadInfo();      print(objectInfoDict.Keys.Count);//打印出来看看读取到了没     }     //拿到字典里面的数据     public  ObjectInfo GetObjectInfoByID(int id)     {      ObjectInfo info=null;      objectInfoDict.TryGetValue(id,out info);      return info;     }     //解析Txt文本文件     void ReadInfo()     {      string text=objectsInfoListText.text;//取到文本里面所有的字符串      string[] strArray = text.Split('\n');//用换行来取      foreach(string str in strArray)//遍力数组      {       string[] proArray=str.Split(',');//根据,号来拆分文本里面的数据       ObjectInfo info=new ObjectInfo();//用来存取在文本文件里面得到的这些信息       int id=int.Parse(proArray[0]);//int.parse意思是把String 强制转换成int       string name=proArray[1];//名称       string icon_name=proArray[2];//存在图集里面的名称       string str_type=proArray[3];//商品类型       ObjectType type=ObjectType.Drug;       switch(str_type)       {         case "Drug":         type=ObjectType.Drug;         break;         case "Equip":         type=ObjectType.Equip;         break;         case "Mat":         type=ObjectType.Mat;         break;               }       //得到信息       info.id=id;       info.name=name;       info.icon_name=icon_name;       info.type=type;       if(type==ObjectType.Drug)       {        int hp=int.Parse(proArray[4]);//血        int mp=int.Parse(proArray[5]);//蓝        int price_buy=int.Parse(proArray[6]);//购买价格        int price_sell=int.Parse(proArray[7]);//出售价格          //得到信息        info.hp=hp;        info.mp=mp;        info.price_buy=price_buy;        info.price_sell=price_sell;              }       objectInfoDict.Add(id,info);//添加到字典中 ID为Key,可以根据ID来找到这个物体的信息      }     }     /*    0    1    2    3    4    5    6    7    8    9    10        id 名称 icon名称    类型(药品Drug)    加血量值    加魔法值    出售价    购买价                   id 名称    icon名称    类型(装备Equip)    加伤害值    加防御值    加速度值    穿戴类型    适用类型    出售价    购买价       id 名称    icon名称    类型(材料Mat)    出售价    购买价    */                       //类型     public enum ObjectType     {        Drug,        Equip,        Mat     }     public class ObjectInfo     {       public int id;       public string name;//名字       public string icon_name;//存取在图集中的名称       public ObjectType type;//类型       public int hp;//血       public int mp;//蓝       public int price_sell;//出售价       public int price_buy;//购买价     } }

注意:我们需要把我们的txt文件放到我们的工程里面  txt里面主要放的是物品栏里面的东西。(商店)加一点注意Mac下txt文件的写入需要换格式

转载请注明原文地址: https://www.6miu.com/read-73154.html

最新回复(0)