public override void LoadData(string content) { if (datasList.Count != 0) { return; } string[] results = ReadExcel(content, true); int nLen = results.Length; for (int i = 1; i < nLen; i++) { string[] datas = ReadExcelRow(results[i]); if (datas.Length == 0) { continue; } Data_EfffectArray data = new Data_EfffectArray(); int istart = 0; data.id = System.Convert.ToInt32(datas[istart]); istart++; string[] array = datas[istart].Split(','); List <int> effects = null; for (int j = 0; j < array.Length; j++) { if (effects == null) { effects = new List <int>(); } effects.Add(System.Convert.ToInt32(array[j])); } data.effects = effects; datasList.Add(data); } }
public static void AddScripts(GameObject go, Data_EfffectArray data) { for (int i = 0; i < data.effects.Count; i++) { int eid = data.effects[i]; Data_Effect de = Excel_Effect.Instance().GetById(eid); Type t = Type.GetType(de.name); Component c = go.AddComponent(t); FieldInfo[] fis = t.GetFields(); foreach (FieldInfo fi in fis) { foreach (var item in de.effect) { if (fi.Name == item.Key) { fi.SetValue(c, item.Value); } } } } }