public void RefreshAssist(List <MasterEquipParam> _master_list, List <DataEquipParam> _data_list) { int[] equip_arr = new int[] { equip1, equip2, equip3, equip4, equip5, equip6, }; assist_param = new StatusParam(); foreach (int equip_serial in equip_arr) { DataEquipParam data = _data_list.Find(p => p.equip_serial == equip_serial); MasterEquipParam equip = data == null ? null : _master_list.Find(p => p.equip_id == data.equip_id); if (equip != null) { FieldInfo[] infoArr = assist_param.GetType().GetFields(); foreach (FieldInfo info in infoArr) { FieldInfo master_info = equip.GetType().GetField(info.Name); FieldInfo assist_info = assist_param.GetType().GetField(info.Name); int iMasterParam = (int)master_info.GetValue(equip); int iAssistParam = (int)assist_info.GetValue(assist_param); assist_info.SetValue(assist_param, iMasterParam + iAssistParam); } } } }
public int GetStatus(string _strKey) { int iRet = 0; FieldInfo unit_info = this.GetType().GetField(_strKey); FieldInfo assist_info = assist_param.GetType().GetField(_strKey); if (unit_info == null) { return(iRet); } //Debug.Log((int)unit_info.GetValue(this)); //Debug.Log((int)assist_info.GetValue(assist_param)); iRet = (int)unit_info.GetValue(this) + (int)assist_info.GetValue(assist_param); return(iRet); }