溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時間:2020-07-26 14:35:01 來源:網(wǎng)絡(luò) 閱讀:3438 作者:酷酷小喬 欄目:開發(fā)技術(shù)

這幾天在做一個單機的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);//打印出來看看讀取到了沒

    }

    //拿到字典里面的數(shù)據(jù)
    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)//遍力數(shù)組
     {
      string[] proArray=str.Split(',');//根據(jù),號來拆分文本里面的數(shù)據(jù)
      ObjectInfo info=new ObjectInfo();//用來存取在文本文件里面得到的這些信息
      int id=int.Parse(proArray[0]);//int.parse意思是把String 強制轉(zhuǎn)換成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,可以根據(jù)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問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI