unity中解析excel匯出的txt檔案
阿新 • • 發佈:2018-12-30
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; /// <summary> /// 武器 /// </summary> [Serializable] public class WeaponItem { public WeaponItem(int id) { _id = id; } public int _id; public string remark;//備註 public WeaponType type;//武器型別 public int level;//等級 public int nextLevel;//下一等級 public string bullet;//子彈 public string effect;//開火特效 public string launcher;//發射器 public string crossHair;//準心 public string fireSound;//開火聲音 public float hurtRate;//傷害頻率 public int hurt;//傷害 public int continuedTime;//鐳射:持續時間;導彈:發射間隔 public int missileCount;//導彈數量 public float attackDis;//攻擊距離 public float x;//顫屏x public float y;//顫屏y public float z;//顫屏z public int speed;//顫屏速度 public float shakeRate;//顫屏頻率 public string gradeSound;//升級音效 public string attackEffect;//擊中特效 public string attackSound;//擊中音效 }
讀取資料
public class Excel_Weapon : Excel_Base<Excel_Weapon> { public override void LoadData(string fileText) { string[] results = ReadExcelLine(fileText); int nLen = results.Length; for (int i = 1; i < nLen; i++) { string[] datas = ReadExcelRow(results[i]); if (datas.Length == 0) { continue; } int start = 0; int iContentID = Convert.ToInt32(datas[start]); if (iContentID == -1) { continue; } WeaponItem item = new WeaponItem(iContentID); start++; item.remark = datas[start].ToString(); start++; item.type = (WeaponType)Convert.ToInt32(datas[start].ToString()); start++; item.level = Convert.ToInt32(datas[start].ToString()); start++; item.nextLevel = Convert.ToInt32(datas[start].ToString()); start++; item.bullet = datas[start].ToString(); start++; item.effect = datas[start].ToString(); start++; item.launcher = datas[start].ToString(); start++; item.crossHair = datas[start].ToString(); start++; item.fireSound = datas[start].ToString(); start++; item.hurtRate = Convert.ToSingle(datas[start].ToString()); start++; item.hurt = Convert.ToInt32(datas[start].ToString()); start++; item.continuedTime = Convert.ToInt32(datas[start].ToString()); start++; item.missileCount = Convert.ToInt32(datas[start].ToString()); start++; item.attackDis = Convert.ToSingle(datas[start].ToString()); start++; item.x = Convert.ToSingle(datas[start].ToString()); start++; item.y = Convert.ToSingle(datas[start].ToString()); start++; item.z = Convert.ToSingle(datas[start].ToString()); start++; item.speed = Convert.ToInt32(datas[start].ToString()); start++; item.shakeRate = Convert.ToSingle(datas[start].ToString()); start++; item.gradeSound = datas[start].ToString(); start++; item.attackEffect = datas[start].ToString(); start++; item.attackSound = datas[start].ToString(); //Debug.Log("item._id:" + item._id + "bullet:" + item.bullet + " item.missileCount:" + item.missileCount + " item.continuedTime:" + item.continuedTime); GlobalConfig._WeaponData.AddItem(item); } } }
只要在合適的時機呼叫LoadData()方法即可