/// <summary> /// 设置格子 /// </summary> /// <param name="attr">属性</param> /// <param name="totalProtectAttrNum">保护属性总条数</param> /// <param name="selectNum">选择数量</param> /// <param name="callback"></param> public void SetGridView(GameCmd.PairNumber attr, bool select, int fillNum = 0, int needNum = 0 , Action <uint> callback = null) { ResetInfoGrid(); RuneStone rs = null; uint runeStoneBaseId = 0; AttrId = attr.id; EquipManager emgr = DataManager.Manager <EquipManager>(); if (emgr.TryGetRuneStoneIdByEffectId(emgr.TransformAttrToEffectId(attr), out runeStoneBaseId)) { rs = DataManager.Manager <ItemManager>().GetTempBaseItemByBaseID <RuneStone>(runeStoneBaseId, ItemDefine.ItemDataType.RuneStone); } else { Engine.Utility.Log.Error("TryGetRuneStoneIdByEffectId failed attr pair = [id,{0}]-[value,{1}]", attr.id, attr.value); } m_uint_rsId = rs.BaseId; if (null != this.attrDes) { this.attrDes.text = emgr.GetAttrDes(attr); } if (null != this.m_labPortectDes) { this.m_labPortectDes.text = string.Format("消耗符石档次:{0}档", rs.Grade); } if (null != m_toggle) { m_toggle.value = select; } SetIcon(true, rs.Icon); SetBorder(true, rs.BorderIcon); int holdNum = (int)DataManager.Manager <ItemManager>().GetItemNumByBaseId(runeStoneBaseId); SetRuneStoneMask(true, (uint)rs.Grade); if (select && fillNum < needNum) { SetNotEnoughGet(true); } if (null != m_labNum) { if (select) { this.m_labNum.text = ItemDefine.BuilderStringByHoldAndNeedNum((uint)fillNum, (uint)needNum); } else { this.m_labNum.text = holdNum.ToString(); } } if (this.changeCallback != callback) { this.changeCallback = callback; } }