private void _tryCreateItemVo(string itemId, int count) { int len = packVo.items.Length; ITEMRESOURCE config = ConfigManager.Inst.GetItemResourceByID(itemId); if (config == null) { DevDebug.Log("道具[" + itemId + "]配置不存!"); return;// 道具配置不存在 } for (int i = 0; i < len; i++) { if (packVo.items[i] == null) { continue; } if (packVo.items[i].configId != itemId) { continue; } if (packVo.items[i].count >= config.limit) { continue; } if ((packVo.items[i].count + count) > config.limit) { count = count - config.limit + packVo.items[i].count; packVo.items[i].count = config.limit; } else { packVo.items[i].count += count; count = 0; } break; } while (count > 0) { // 创建物品 ItemVO itemVo = _createItemVO(itemId); if (count > config.limit) { count -= config.limit; itemVo.count = config.limit; } else { itemVo.count = count; count = 0; } // 将物品放入到背包中 packVo.items.SetValue(itemVo, itemVo.index); } }
private ItemVO _createItemVO(string itemId) { ItemVO vo = new ItemVO(); vo.configId = itemId; vo.id = LogicMgr.logicSerial.GetSerialNum("item"); vo.index = _emptyIndex; return(vo); }
public void Show(VOBase vo) { _itemVo = (ItemVO)vo; if (vo == null) { Clear(); return; } _imgIcon.sprite = Resources.Load <Sprite>(_itemVo.config.icon); itemIcon.SetActive(true); _txtCount.text = _itemVo.config.limit > 1 ? _itemVo.count.ToString():""; }
public void Clear() { itemIcon.SetActive(false); _txtCount.text = ""; _itemVo = null; }