讀取文檔
第一步先擷取文檔,這時我們會有一個是.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);
}
}
裡面的不懂可以忽視,是擴充而已,有興趣可以看看。如果不懂也可以發個消息,我會盡快回複。