您好,登錄后才能下訂單哦!
這幾天在做一個單機的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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。