using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
///
/// 多页签界面,管理子界面
///
public abstract class FunctionsBaseWin : UIBase
{
// 标签按钮组
public GroupButtonEx[] tabButtons;
// 当前打开的子界面
protected UIBase currentSubUI;
///
/// 初始化组件
///
protected override void InitComponent()
{
// 初始化UI组件事件
InitButtonEvents();
}
protected override void OnPreOpen()
{
// 默认选中第一个标签
SelectBottomTab(functionOrder);
}
protected override void OnPreClose()
{
CloseCurrentSubUI();
}
///
/// 初始化UI组件事件
///
private void InitButtonEvents()
{
// 初始化底部按钮
for (int i = 0; i < tabButtons.Length; i++)
{
int index = i;
tabButtons[i].AddListener(() =>
{
OnTabButtonClicked(index);
});
}
}
///
/// 选择标签
///
protected virtual void SelectBottomTab(int index)
{
// 如果点击当前已选中的标签,不做处理
if (functionOrder == index && currentSubUI != null)
{
return;
}
// 更新当前选中的标签索引
functionOrder = index;
// 关闭当前打开的子界面
CloseCurrentSubUI();
// 根据选中的标签打开对应的界面
OpenSubUIByTabIndex();
}
///
/// 关闭当前打开的子界面
///
protected void CloseCurrentSubUI()
{
if (currentSubUI != null)
{
// 关闭当前界面
currentSubUI.CloseWindow();
currentSubUI = null;
}
}
///
/// 根据标签索引打开对应的子界面
///
protected abstract void OpenSubUIByTabIndex();
///
/// 标签按钮点击
///
protected virtual void OnTabButtonClicked(int index)
{
SelectBottomTab(index);
}
}