// 本脚本只在不存在时会生成一次。已存在不会再次生成覆盖 using System.Collections.Generic; using UnityEngine; using NBC; using NBF.Fishing2; namespace NBF { public partial class BagPanel : UIPanel { protected override void OnInit() { base.OnInit(); } protected override void OnShow() { ItemList.List.OnClickItem += OnClickItem; Game.Input.OnUICanceled += OnUICanceled; UseBottomMenu(); List tabItemList = new List(); var role = App.Main.GetComponent(); var roleBag = role.GetComponent(); var dic = roleBag.GetItemsByType(); foreach (var (type, list) in dic) { TabItemData tabItem = new TabItemData { Key = type.ToString() }; tabItem.Items.AddRange(list); tabItemList.Add(tabItem); } ItemList.SetPanel(this); ItemList.SetData(tabItemList, true, true); } private void OnUICanceled(string action) { if (!IsTop) return; if (action == InputDef.UI.SubPrev) { } else if (action == InputDef.UI.SubNext) { } else if (action == InputDef.UI.Up) { } else if (action == InputDef.UI.Down) { } } private void OnClickItem(object item) { if (item is not BagItem bagItem) return; // ItemDetailsPanel.s ItemDetailsPanel.Show(bagItem.ItemInfo); } private void UseBottomMenu() { BottomMenu.Use(this); } protected override void OnHide() { Game.Input.OnUICanceled -= OnUICanceled; ItemList.List.OnClickItem -= OnClickItem; } protected override void OnDestroy() { base.OnDestroy(); } } }