/// <summary> 슬롯 생성 </summary> UIMarketSlot CreateMarketSlot(TradeData data) { UIMarketSlot slot = null; //for (int i = 0; i < marketSlotPool.Count; i++) //{ // if (marketSlotPool[i].gameObject.activeSelf == false && marketSlotPool[i].tradeData == null) // { // slot = marketSlotPool[i]; // break; // } //} for (int j = 0; j < marketSlotList.Count; j++) { if (data == marketSlotList[j].tradeData) { slot = marketSlotList[j]; } } if (slot == null) { GameObject go = Instantiate(marketSlotPrefab); go.transform.SetParent(content.transform, false); slot = go.GetComponent <UIMarketSlot>(); slot.onClickRemove = MarketManager.Instance.CancleTrade; marketSlotList.Add(slot); } slot.InitMarketSlotData(data); return(slot); }
void UpdatePanel() { if (gameManager == null) { gameManager = GameManager.instance; } int length = gameManager.saleFood.Count; UIUtils.BalancePrefabs(slotPrefab.gameObject, length, content); for (int i = 0; i < length; i++) { UIMarketSlot slot = content.GetChild(i).GetComponent <UIMarketSlot>(); FoodItemAndAmount foodItemAndAmount = gameManager.saleFood[i]; // add select id int icopy = i; slot.button.onClick.SetListener(() => OnFoodClicked(icopy)); // show item in UI slot.image.color = Color.white; slot.image.sprite = foodItemAndAmount.item.image; slot.nameText.text = ""; slot.amountText.text = foodItemAndAmount.amount.ToString(); } }
/// <summary> 거래 제거 됐을때 </summary> void OnRemoveTrade(TradeData trade) { UIMarketSlot slot = marketSlotList.Find(x => x.tradeData == trade); marketSlotList.Remove(slot); Destroy(slot.gameObject); textCurrentSlotCount.text = "(" + marketSlotList.Count + "/" + MarketManager.Instance.defaultDataCount + ")"; }
/// <summary> 슬롯 리스트 초기화 </summary> void InitTradeDataList() { if (MarketManager.Instance == null) { return; } for (int i = 0; i < MarketManager.Instance.tradeDataList.Count; i++) { // slot 생성 & 초기화 UIMarketSlot slot = CreateMarketSlot(MarketManager.Instance.tradeDataList[i]); slot.gameObject.SetActive(true); } textCurrentSlotCount.text = "(" + MarketManager.Instance.tradeDataList.Count + "/" + MarketManager.Instance.defaultDataCount + ")"; SizeControl(MarketManager.Instance.tradeDataList.Count); }