using UnityEngine;
|
using UnityEngine.UI;
|
using Cysharp.Threading.Tasks;
|
|
public abstract class OSActivityBaseWin : FunctionsBaseWin
|
{
|
[SerializeField] protected Button closBtn;
|
|
protected override void InitComponent()
|
{
|
base.InitComponent();
|
if (closBtn != null)
|
{
|
closBtn.AddListener(CloseWindow);
|
}
|
}
|
|
// 由子类实现:当前活动的 RankType
|
protected abstract int GetRankType();
|
|
// 由子类实现:实例化对应的三个子窗口
|
protected abstract UniTask<UIBase> GetRankWin();
|
protected abstract UniTask<UIBase> GetAwardWin();
|
protected abstract UniTask<UIBase> GetGiftWin();
|
|
protected override async void OpenSubUIByTabIndex()
|
{
|
switch (functionOrder)
|
{
|
case 0:
|
currentSubUI = await GetRankWin();
|
break;
|
case 1:
|
currentSubUI = await GetAwardWin();
|
break;
|
case 2:
|
// 如果后续有活动没有礼包页签,只需在子类里返回 null 或不调用即可
|
currentSubUI = await GetGiftWin();
|
break;
|
}
|
}
|
}
|