Files
Fishing2/Assets/Scripts/UI/Shops/FishingShopPanel.cs

97 lines
2.4 KiB
C#

// 本脚本只在不存在时会生成一次。已存在不会再次生成覆盖
using System.Collections.Generic;
using FairyGUI;
using NBC;
using UIPanel = NBC.UIPanel;
namespace NBF
{
public class ShopGearData
{
public string title;
}
public partial class FishingShopPanel : UIPanel
{
public override string UIPackName => "Shop";
public override string UIResName => "FishingShopPanel";
private List<TabListAndSubListData> _tabList = new List<TabListAndSubListData>();
private TabListAndSubListData _currentTab;
protected override void OnInit()
{
base.OnInit();
this.AutoAddClick(OnClick);
IsShowCursor = true;
for (int i = 0; i < 10; i++)
{
var itemData = new TabListAndSubListData();
itemData.AddTestData(i);
_tabList.Add(itemData);
}
Menu.OnTabChange += ChangeTab;
SubMenu.OnTabChange += ChangeSubTab;
List.OnClickItem += OnClickItem;
}
protected override void OnShow()
{
base.OnShow();
Menu.SetTabs(_tabList);
UseBottomMenu();
}
private void UseBottomMenu()
{
BottomMenu.OnBack += Hide;
BottomMenu.Use();
}
private void ChangeTab(int index)
{
Log.Info($"Change tab index={index}");
var tabListData = _tabList[index];
_currentTab = tabListData;
SubMenu.SetTabs(_currentTab.SubTab);
}
private void ChangeSubTab(int index)
{
var subList = _currentTab.SubTab[index];
List.SetListData(subList.Items);
}
private void OnClickItem(object item)
{
if (item is not ShopGearItem shopGearItem) return;
Log.Info($"click item ={shopGearItem.GearData.title}");
}
private void OnClick(GComponent btn)
{
// if (btn == BtnClose)
// {
// Hide();
// }
}
protected override void OnHide()
{
base.OnHide();
BottomMenu.UnUse();
}
protected override void OnDestroy()
{
base.OnDestroy();
Menu.OnTabChange -= ChangeTab;
SubMenu.OnTabChange -= ChangeSubTab;
}
}
}