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

代码:

usingUnityEngine;
usingSystem.Collections;
usingSystem.Collections.Generic;

publicclassObjectsInfo:MonoBehaviour{

publicstaticObjectsInfo_instance;
publicTextAssetobjectsInfoListText;

privateDictionary<int,ObjectInfo>objectInfoDict=newDictionary<int,ObjectInfo>();//定义一个字典

voidAwake()
{
_instance=this;
ReadInfo();
print(objectInfoDict.Keys.Count);//打印出来看看读取到了没

}

//拿到字典里面的数据
publicObjectInfoGetObjectInfoByID(intid)
{
ObjectInfoinfo=null;

objectInfoDict.TryGetValue(id,outinfo);


returninfo;
}

//解析Txt文本文件
voidReadInfo()
{
stringtext=objectsInfoListText.text;//取到文本里面所有的字符串
string[]strArray=text.Split('\n');//用换行来取

foreach(stringstrinstrArray)//遍力数组
{
string[]proArray=str.Split(',');//根据,号来拆分文本里面的数据
ObjectInfoinfo=newObjectInfo();//用来存取在文本文件里面得到的这些信息
intid=int.Parse(proArray[0]);//int.parse意思是把String强制转换成int
stringname=proArray[1];//名称
stringicon_name=proArray[2];//存在图集里面的名称
stringstr_type=proArray[3];//商品类型



ObjectTypetype=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)
{
inthp=int.Parse(proArray[4]);//血
intmp=int.Parse(proArray[5]);//蓝
intprice_buy=int.Parse(proArray[6]);//购买价格
intprice_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来找到这个物体的信息
}

}

/*012345678910
id名称icon名称类型(药品Drug)加血量值加魔法值出售价购买价
id名称icon名称类型(装备Equip)加伤害值加防御值加速度值穿戴类型适用类型出售价购买价
id名称icon名称类型(材料Mat)出售价购买价*/

//类型
publicenumObjectType
{
Drug,
Equip,
Mat
}


publicclassObjectInfo
{
publicintid;
publicstringname;//名字
publicstringicon_name;//存取在图集中的名称
publicObjectTypetype;//类型
publicinthp;//血
publicintmp;//蓝
publicintprice_sell;//出售价
publicintprice_buy;//购买价

}
}


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