天天看點

U3D讀取TXT文檔(例如裝備物品資訊的資料)适合新手

讀取文檔

第一步先擷取文檔,這時我們會有一個是.txt字尾的文檔。沒有的話自己寫一個也行。

U3D讀取TXT文檔(例如裝備物品資訊的資料)适合新手

不限字元。(除了一些無法識别的)

開始寫腳本。

/*這裡是枚舉擴充
public enum SkillType {
    Basic,
    Skill
}

public enum SkillPos {
    Basic,
    One,
    Two,
    Three
}
*/
//這個類是用來接收等下讀取出來的資料
public class SkillInfo {
    private string Id;
    private string Name;
    private string cn;
    /*這裡面是擴充
    //前面這三個是将txt的資料轉換成類中的枚舉值。
    private PlayerInofo.CharacterType characterType;
    private SkillType skillType;
    private SkillPos skillPos;
    */
           
public class SkillManage : MonoBehaviour {
	//這個是放文檔的類,像web的就不是TestAsset,而是WWW
    public TextAsset textAsset;
    //建一個清單等下用來接收你的資料(按行接收),友善你調用。
    //這個SkillInfo類,你也可以在本類中寫成struct。
    private List<SkillInfo> SkillList = new List<SkillInfo>();
    private void Awake()
    {
    	//初始化資料
        initSkillInfo();
    }
    public void initSkillInfo()
    {
    //先把文檔轉換成字元串行,‘\n’是告訴系統按照換行符取值
        string[] str = textAsset.ToString().Split('\n');
       //再在每行裡面讀取單獨的字元串,‘;’是告訴系統按照;取值
        foreach (string item in str)
        {
            string[] strArray = item.Split(';');
            SkillInfo ski = new SkillInfo();
            //把值放到要存資料的類裡。
            ski.Name1 = strArray[0];
            ski.Id1 =strArray[1];
            ski.cn= strArray[2];
            /*這裡面是擴充,擷取枚舉值的(這個需要在文檔中每行後面另外添加枚舉的值)
            ski.CharacterType = (PlayerInofo.CharacterType)Enum.Parse(typeof(PlayerInofo.CharacterType), strArray[3]);
            ski.SkillType = (SkillType)Enum.Parse(typeof(SkillType), strArray[4]);
            ski.SkillPos = (SkillPos)Enum.Parse(typeof(SkillPos), strArray[5]);
            */
            SkillList.Add(ski);
        }
    }
    
           

裡面的不懂可以忽視,是擴充而已,有興趣可以看看。如果不懂也可以發個消息,我會盡快回複。

繼續閱讀