258 lines
7.6 KiB
C#
258 lines
7.6 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine.UI;
|
|
using GCGame.Table;
|
|
using Module.Log;
|
|
|
|
// 包含多级菜单的页面
|
|
// 可能还需要显示模型
|
|
public class OpenServiceSubMenuPageCS : MarketingUIBaseCS
|
|
{
|
|
|
|
public UIContainerSelect menuContainer; // 菜单容器
|
|
public UIContainerBase awardContainer; // 奖品容器
|
|
public Image banner; // 页面背景
|
|
public UICameraTexture modelTexture; // 模型贴图
|
|
public List<Text> descList; // 页面文字描述列表
|
|
//public Image tempModelImage; // 临时图片,代替模型
|
|
public Button btnReacharge; // 充值按钮
|
|
|
|
private int showingIndex = -1; // 当前显示的页面ID
|
|
private List<MarketingActPacketSubTag> menuDatas; // 二级菜单数据,包括奖品信息
|
|
public List<MarketingActPacketSubTag> MenuDatas
|
|
{
|
|
get
|
|
{
|
|
return menuDatas;
|
|
}
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
AskForInfo();
|
|
}
|
|
|
|
// 设置Banner
|
|
public void SetBanner()
|
|
{
|
|
if (banner != null)
|
|
{
|
|
Tab_ActInfoClient tab = TableManager.GetActInfoClientByID(this._ActID, 0);
|
|
if (tab != null && !string.IsNullOrEmpty(tab.Icon))
|
|
{
|
|
LoadAssetBundle.Instance.SetImageSprite(banner, tab.Icon);
|
|
banner.gameObject.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
banner.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
// 设置页面描述
|
|
public void SetDesc(List<string> infos)
|
|
{
|
|
if (descList != null)
|
|
{
|
|
for (int i = 0; i < descList.Count; i++)
|
|
{
|
|
if (i < infos.Count && !string.IsNullOrEmpty(infos[i]))
|
|
{
|
|
descList[i].text = StrDictionary.GetServerDictionaryFormatString(infos[i]);
|
|
descList[i].gameObject.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
descList[i].gameObject.SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// 设置菜单显示
|
|
public void SetSubMenu(List<MarketingActPacketSubTag> datas)
|
|
{
|
|
if(menuContainer != null && datas != null && datas.Count > 0)
|
|
{
|
|
List<MarketingActPacketSubTag> selectedMenus = new List<MarketingActPacketSubTag>();
|
|
if(showingIndex != -1 && showingIndex < datas.Count)
|
|
{
|
|
selectedMenus.Add(datas[showingIndex]);
|
|
}
|
|
else
|
|
{
|
|
selectedMenus.Add(datas[0]);
|
|
}
|
|
|
|
menuContainer.InitSelectContent(datas, selectedMenus, OnMenuSelected);
|
|
}
|
|
}
|
|
|
|
// 菜单点击回调
|
|
public void OnMenuSelected(object obj)
|
|
{
|
|
MarketingActPacketSubTag selectedMenu = obj as MarketingActPacketSubTag;
|
|
if (selectedMenu != null)
|
|
{
|
|
for (int i = 0; i < MenuDatas.Count; i++)
|
|
{
|
|
if (MenuDatas[i].tagId == selectedMenu.tagId)
|
|
{
|
|
if (awardContainer != null)
|
|
{
|
|
awardContainer.InitContentItem(selectedMenu.awardTags);
|
|
showingIndex = i;
|
|
SetModel(MenuDatas[i]);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// 点击充值按钮
|
|
public void OnRechargeBtnClick()
|
|
{
|
|
YuanBaoShopLogic.OpenChargePage();
|
|
}
|
|
|
|
// 设置模型
|
|
public void SetModel(MarketingActPacketSubTag selectMenu)
|
|
{
|
|
if(modelTexture != null)
|
|
{
|
|
if (selectMenu.modleID != 0)
|
|
{
|
|
Tab_CharModel tab = TableManager.GetCharModelByID(selectMenu.modleID, 0);
|
|
if (tab != null)
|
|
{
|
|
modelTexture.InitModelPath(tab.ResPath, tab);
|
|
modelTexture.gameObject.SetActive(true);
|
|
//tempModelImage.gameObject.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
// 模型数据不存在时,使用“假”数据顶替。
|
|
//LoadAssetBundle.Instance.SetImageSprite(tempModelImage, selectMenu.modleID.ToString());
|
|
modelTexture.gameObject.SetActive(false);
|
|
//tempModelImage.gameObject.SetActive(true);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
modelTexture.gameObject.SetActive(false);
|
|
//tempModelImage.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
#region 请求与接收处理
|
|
|
|
// 请求
|
|
public void AskForInfo()
|
|
{
|
|
MarketingActAwardPageReq req = new MarketingActAwardPageReq();
|
|
req.actID = this._ActID;
|
|
req.updateOrInit = 1;
|
|
|
|
req.SendMsg();
|
|
}
|
|
|
|
//// 获取信息
|
|
//public void GetPageInfo(MarketingActPacketPageRet packet)
|
|
//{
|
|
// LogModule.DebugLog(this.gameObject.name + " : Recieve message.");
|
|
// menuDatas = packet.subTags;
|
|
// SetBanner();
|
|
// SetDesc(packet.pageDescList);
|
|
// SetSubMenu(MenuDatas);
|
|
|
|
// // 设置充值按钮监听
|
|
// if(btnReacharge != null)
|
|
// {
|
|
// btnReacharge.onClick.AddListener(OnRechargeBtnClick);
|
|
// }
|
|
//}
|
|
|
|
//// 接收获取奖励
|
|
//public void GetAwardRet(MarketingActAwardPageGetAwardRet packet)
|
|
//{
|
|
// // 更新二级菜单红点信息
|
|
// menuContainer.ForeachActiveItem<OpenServiceSubMenuItem>(
|
|
// (menuItem) =>
|
|
// {
|
|
// if(menuItem.TagID == packet.tagID)
|
|
// {
|
|
// menuItem.SetRedPoint(packet.actState);
|
|
// }
|
|
// }
|
|
// );
|
|
|
|
// // 更新三级按钮
|
|
// awardContainer.ForeachActiveItem<OpenServiceSubAwardTag>(
|
|
// (tag) =>
|
|
// {
|
|
// if (tag.SubID == packet.subTagId)
|
|
// {
|
|
// tag.SetBtnState(packet.btnState);
|
|
// }
|
|
// }
|
|
// );
|
|
//}
|
|
|
|
// 新数据接口
|
|
protected override void MarketingActPageAwardRetDelInner(object packet)
|
|
{
|
|
LogModule.DebugLog(this.gameObject.name + " : Recieve message.");
|
|
MarketingActPacketPageRet p = packet as MarketingActPacketPageRet;
|
|
if (p == null)
|
|
return;
|
|
|
|
menuDatas = p.subTags;
|
|
SetBanner();
|
|
SetDesc(p.pageDescList);
|
|
SetSubMenu(MenuDatas);
|
|
|
|
// 设置充值按钮监听
|
|
if (btnReacharge != null)
|
|
{
|
|
btnReacharge.onClick.AddListener(OnRechargeBtnClick);
|
|
}
|
|
}
|
|
|
|
protected override void MarketingActPageGetAwardRetInner(object packet)
|
|
{
|
|
MarketingActAwardPageGetAwardRet p = packet as MarketingActAwardPageGetAwardRet;
|
|
if (p == null)
|
|
return;
|
|
|
|
// 更新二级菜单红点信息
|
|
menuContainer.ForeachActiveItem<OpenServiceSubMenuItem>(
|
|
(menuItem) =>
|
|
{
|
|
if (menuItem.TagID == p.tagID)
|
|
{
|
|
menuItem.SetRedPoint(p.actState);
|
|
}
|
|
}
|
|
);
|
|
|
|
// 更新三级按钮
|
|
awardContainer.ForeachActiveItem<OpenServiceSubAwardTag>(
|
|
(tag) =>
|
|
{
|
|
if (tag.SubID == p.subTagId)
|
|
{
|
|
tag.SetBtnState(p.btnState);
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
/////////////
|
|
|
|
#endregion
|
|
}
|