Files
JJBB/Assets/Project/Script/GUI/NewYearPage/NewYearPage.cs

211 lines
5.8 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using GCGame.Table;
using Module.Log;
using System;
public class NewYearPage : MarketingUIBaseCS
{
#region
private static NewYearPage _instance;
public static NewYearPage Instance
{
get
{
if (_instance != null)
{
return _instance;
}
Debug.LogError("无法得到实例");
return null;
}
}
private void Awake()
{
if (_instance == null)
{
_instance = this;
}
closeBtn.onClick.AddListener(Close);
}
#endregion
public UIContainerSelect menuContainer; // 列表容器
public GameObject pageContainer; // 页面容器
public List<MarketingActState> actPageInfo; // 菜单信息
public Button closeBtn; // 关闭按钮
private int curPageID; // 当前显示页面ID
public int New_Order;
private void OnEnable()
{
Init();
}
private void OnDisable()
{
if (MarketingActsRoot.Instance() != null)
{
MarketingActsRoot.Instance().ClearShowingWin(_ActID);
}
}
public void Close()
{
//UIManager.CloseUI(UIInfo.NewYearPage);
gameObject.SetActive(false);
}
private void Init()
{
AskForInfo();
}
/// <summary>
/// 设置菜单
/// </summary>
/// <param name="menuInfos"></param>
private void SetMenu(List<MarketingActState> menuInfos)
{
if (menuInfos.Count > 0)
{
List<MarketingActState> selectMenus = new List<MarketingActState>();
int L_ActID = 0;
int L_openWithAct = 0;
Tab_ActItemUsePath tab = TableManager.GetActItemUsePathByID(2, 0);
if (tab != null)
{
string parm = tab.ActParam;
string[] parms = parm.TrimEnd(' ', '"').Split('*');
if (parms.Length > 1)
{
L_ActID = Convert.ToInt32(parms[0]);
L_openWithAct = Convert.ToInt32(parms[1]);
}
}
if (_ActID == L_ActID && openWithAct == L_openWithAct)
{
if (menuInfos.Count > New_Order)
{
selectMenus.Add(menuInfos[New_Order]);
openWithAct = -1;
}
else if (menuInfos.Count == New_Order)
{
selectMenus.Add(menuInfos[menuInfos.Count - 1]);
openWithAct = -1;
}
}
else
{
selectMenus.Add(menuInfos[0]);
}
menuContainer.InitSelectContent(menuInfos, selectMenus, OnMenuSelect);
}
}
/// <summary>
/// 加载页面
/// </summary>
/// <param name="info"></param>
private void OnMenuSelect(object info)
{
MarketingActState selectMenu = info as MarketingActState;
if (selectMenu != null)
{
if (MarketingActsRoot.Instance()._ShowingWin.ContainsKey(curPageID))
{
if (MarketingActsRoot.Instance()._ShowingWin[curPageID] != null)
{
MarketingActsRoot.Instance()._ShowingWin[curPageID].SetActive(false);
}
else
{
LogModule.DebugLog("Try to get an activity in Openservice. But is Null, please check _ActId = " + curPageID);
}
MarketingActsRoot.Instance()._ShowingWin.Remove(curPageID);
}
///////////// 临时修复Bug会出现没及时删除旧页面的情况
if (MarketingActsRoot.Instance()._ShowingWin.ContainsKey(selectMenu.actID))
{
if (MarketingActsRoot.Instance()._ShowingWin[selectMenu.actID] != null)
{
MarketingActsRoot.Instance()._ShowingWin[selectMenu.actID].SetActive(false);
}
else
{
LogModule.DebugLog("Try to get an activity in Openservice. But is Null, please check _ActId = " + curPageID);
}
MarketingActsRoot.Instance()._ShowingWin.Remove(selectMenu.actID);
}
////////////
Tab_ActInfoClient tab = TableManager.GetActInfoClientByID(selectMenu.actID, 0);
Hashtable parm = new Hashtable();
parm.Add("ActState", selectMenu);
LuaUIManager.Instance.ShowLuaUIAsChild(tab.UIPath, pageContainer, MarketingActsRoot.Instance().LoadUICallBack, parm, true);
curPageID = selectMenu.actID;
}
else
{
LogModule.ErrorLog("No this page.");
}
}
#region
/// <summary>
/// 请求
/// </summary>
private void AskForInfo()
{
MarketingActsReq request = new MarketingActsReq();
request.actType = _ActID;
request.SendMsg();
}
/// <summary>
/// 接收
/// </summary>
/// <param name="marketActsRet"></param>
protected override void MarketingActRetInner(MarketingActsRet marketActsRet)
{
base.MarketingActRetInner(marketActsRet);
SetMenu(marketActsRet.actIDState);
}
#endregion
// 用于设置活动接收菜单数据后显示的活动
// 无论存在此活动与否,都要在第一次显示过后,设回 -1
// -1 不跳转
private static int openWithAct = -1;
public static int OpenWithAct
{
get { return openWithAct; }
set { openWithAct = value; }
}
}