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); } } } } }
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_Effect data = new Data_Effect(); int istart = 0; data.id = System.Convert.ToInt32(datas[istart]); istart++; data.name = datas[istart]; istart++; //UnityEngine.Debug.Log("data:" + datas[istart]+ " istart:" + istart); string[] array = datas[istart].Split(','); List <KeyValuePair <string, float> > effect = null; for (int j = 0; j < array.Length; j++) { string[] pairs = array[j].Split(':'); if (effect == null) { effect = new List <KeyValuePair <string, float> >(); } effect.Add(new KeyValuePair <string, float>(pairs[0], System.Convert.ToInt32(pairs[1]))); } data.effect = effect; datasList.Add(data); } }