读取文档
第一步先获取文档,这时我们会有一个是.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);
}
}
/**/里面的不懂可以忽视,是扩展而已,有兴趣可以看看。如果不懂也可以发个消息,我会尽快回复。