温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-07-26 14:35:01 来源:网络 阅读:3442 作者:酷酷小乔 栏目:开发技术

这几天在做一个单机的RPG游戏,以前看到贴吧,论坛有人做一些RPG游戏,感觉好强啊,既然有资源,所以我也打算做一个,就在今天(2015年1月22日,我遇到了一个怎么读取txt文本里面的配置信息的问题,以前没接触过,只在cocos2d里面接触了一点,所以做的时候晕晕的,)

代码:

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文件的写入需要换格式


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI