using System; using UnityEngine; using UnityEngine.UI; //批量使用物品 public class ItemBatchUseWin : UIBase { [SerializeField] ItemCell itemCell; [SerializeField] Text nameText; [SerializeField] Text countText; [SerializeField] Text descText; [SerializeField] SliderPanel sliderPanel; [SerializeField] Text tipText; [SerializeField] Button okBtn; [SerializeField] Text btnNameText; [SerializeField] Text titleText; public static Func ShowTextEvent; public static int itemID; public static string btnName; int useCnt; long maxCnt; protected override void InitComponent() { okBtn.AddListener(OnOK); } protected override void OnPreOpen() { useCnt = 1; Display(); } void Display() { var key = "UseItemTitle_" + itemID; if (LanguageConfig.HasKey(key)) { titleText.text = Language.Get(key); } else { titleText.text = Language.Get("UseItemDefault"); } maxCnt = PackManager.Instance.GetItemCountByID(PackType.Item, itemID); useCnt = maxCnt > 0 ? 1 : 0; itemCell.Init(new ItemCellModel(itemID, false, useCnt)); itemCell.button.AddListener(() => { ItemTipUtility.Show(itemID); }); var itemConfig = ItemConfig.Get(itemID); nameText.text = itemConfig.ItemName; countText.text = Language.Get("storename12", maxCnt); descText.text = itemConfig.Description; OnSliderChange(useCnt); sliderPanel.Init((value) => { OnSliderChange(value); }, (int)maxCnt); btnNameText.text = btnName; } void OnSliderChange(int value) { useCnt = value; itemCell.countText.text = UIHelper.ReplaceLargeNum(useCnt); if (ShowTextEvent != null) { tipText.text = ShowTextEvent(useCnt); } else { tipText.text = ""; } } void OnOK() { CloseWindow(); if (useCnt == 0) { SysNotifyMgr.Instance.ShowTip("UseItem1"); return; } if (ItemLogicUtility.CheckItemCount(PackType.Item, itemID, useCnt, 1)) { ItemLogicUtility.Instance.UseItem(PackManager.Instance.GetItemGUIDByID(itemID), useCnt); } SysNotifyMgr.Instance.ShowTip("UseOK"); } }