Files
JJBB/Assets/Project/Script/GUI/PlayerInfo/OtherPlayerInfoRootCtr.cs
2024-08-23 15:49:34 +08:00

135 lines
4.1 KiB
C#

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
using UnityEngine.EventSystems;
public class OtherPlayerInfoRootCtr : MonoBehaviour {
public enum MenuType
{
Equip = 0, // 装备属性
Skill = 1, // 技能
Pet = 2, // 宠物
Fabao = 3, // 法宝
Power = 4, // 战力
Advance = 5 // 进阶
}
#region
// public List<GameObject> menuItemList; // 操作按钮
// public List<Image> menuMarkList; // 标记
public List<GameObject> infoPanelList = new List<GameObject>(); // 对应信息Panel
public TogglesControl toggleControl;
public UIContainerSelect menuContainer; // 菜单拉动区
public int[] advanceTypeList; // 进阶类型映射
private int panelType = -1; // 当前类型
private int toggleIndex = -1; // 点击菜单按钮索引
#endregion
public static OtherPlayerInfoRootCtr Instance;
private void Awake()
{
Instance = this;
//menuContainer._ScrollRect.OnEndDrag();
}
private void OnDestroy()
{
Instance = null;
}
void OnEnable()
{
toggleControl.OnTogglesSelect += OnMenuItemClick;
toggleControl.SetToggleOn(0);
}
private void OnDisable()
{
toggleControl.OnTogglesSelect -= OnMenuItemClick;
}
public void OnMenuItemClick(int tIndex)
{
// 关闭之前的界面
if (panelType != -1 && panelType <= (int)MenuType.Advance)
{
if(panelType < 4)
{
infoPanelList[panelType].SetActive(false);
}
else
{
infoPanelList[4].SetActive(false);
}
}
toggleIndex = tIndex;
if(toggleIndex > 3)
{
panelType = 5;
infoPanelList[panelType - 1].SetActive(true);
}
else if(tIndex >= 0)
{
panelType = toggleIndex;
infoPanelList[panelType].SetActive(true);
}
CG_ASK_OTHERROLE_DATA askPak = (CG_ASK_OTHERROLE_DATA)PacketDistributed.CreatePacket(MessageID.PACKET_CG_ASK_OTHERROLE_DATA);
askPak.SetGuid(GameManager.gameManager.OtherPlayerData.RoleGUID);
switch (panelType)
{
case (int)MenuType.Equip:
askPak.SetDataType((int)MenuType.Equip);
break;
case (int)MenuType.Skill:
//申请当前的技能信息
askPak.SetDataType((int)MenuType.Skill);
break;
case (int)MenuType.Pet:
askPak.SetDataType((int)MenuType.Pet);
break;
case (int)MenuType.Fabao:
askPak.SetDataType((int)MenuType.Fabao);
break;
// 其他均视为进阶请求
default:
if(OtherPlayerAdvancePanelCtr.Instance != null)
{
if (OtherPlayerAdvancePanelCtr.Instance.HasInit)
{
OtherPlayerAdvancePanelCtr.Instance.ShowPanel((AdvanceBase.AdvanceType)advanceTypeList[(toggleIndex - (int)MenuType.Advance) + 1]);
return;
}
else
{
askPak.SetDataType((int)MenuType.Advance);
OtherPlayerAdvancePanelCtr.Instance.advanceType = (AdvanceBase.AdvanceType)advanceTypeList[(toggleIndex - (int)MenuType.Advance + 1)];
}
}
break;
}
askPak.SendPacket();
}
public void OnCloseBtnClick()
{
UIManager.CloseUI(UIInfo.OtherPlayerInfoRoot);
}
#region
private void TipShow(PointerEventData eventData)
{
}
#endregion
}