1. 程式人生 > >unity中解析excel匯出的txt檔案

unity中解析excel匯出的txt檔案

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()方法即可