U3D读取TXT文档(例如装备物品信息的数据)适合新手

读取文档
第一步先获取文档,这时我们会有一个是.txt后缀的文档。没有的话自己写一个也行。U3D读取TXT文档(例如装备物品信息的数据)适合新手_第1张图片
不限字符。(除了一些无法识别的)
开始写脚本。

/*这里是枚举扩展
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 SkillList = new List();
    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);
        }
    }
    

/**/里面的不懂可以忽视,是扩展而已,有兴趣可以看看。如果不懂也可以发个消息,我会尽快回复。

你可能感兴趣的:(Unity3D)