您好,登录后才能下订单哦!
这几天在做一个单机的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文件的写入需要换格式
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。