2025-10-10 17:30:07 +08:00

184 lines
6.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
using YiLiao.JingLuoXueWei;
using ZXKFramework;
public class LeftBigBtnPanel : UIBase
{
List<Button> allBigBtn = new List<Button>();
Dictionary<Button, GameObject> JingLuoXueWeiDict = new Dictionary<Button, GameObject>();
List<string> isCreateBtnLst = new List<string>();
public override string GroupName => typeof(LeftBigBtnPanel).Name;
public override string Name => typeof(LeftBigBtnPanel).Name;
public override void Init(IUIManager uictrl)
{
base.Init(uictrl);
#region
Button FeiJing = transform.FindFirst<Button>("肺经");
GameObject feiJingChild = transform.FindFirst("肺经子按钮");
allBigBtn.Add(FeiJing);
JingLuoXueWeiDict.Add(FeiJing, feiJingChild);
Button DaChang = transform.FindFirst<Button>("大肠");
GameObject daChangChild = transform.FindFirst("大肠子按钮");
allBigBtn.Add(DaChang);
JingLuoXueWeiDict.Add(DaChang, daChangChild);
Button WeiJing = transform.FindFirst<Button>("胃经");
GameObject weiJingChild = transform.FindFirst("胃经子按钮");
allBigBtn.Add(WeiJing);
JingLuoXueWeiDict.Add(WeiJing, weiJingChild);
Button PiJing = transform.FindFirst<Button>("脾经");
GameObject piJingChild = transform.FindFirst("脾经子按钮");
allBigBtn.Add(PiJing);
JingLuoXueWeiDict.Add(PiJing, piJingChild);
Button XinJing = transform.FindFirst<Button>("心经");
GameObject xinJingChild = transform.FindFirst("心经子按钮");
allBigBtn.Add(XinJing);
JingLuoXueWeiDict.Add(XinJing, xinJingChild);
Button XiaoChang = transform.FindFirst<Button>("小肠");
GameObject xiaoChangChild = transform.FindFirst("小肠子按钮");
allBigBtn.Add(XiaoChang);
JingLuoXueWeiDict.Add(XiaoChang, xiaoChangChild);
Button PangGuang = transform.FindFirst<Button>("膀胱");
GameObject pangGuangChild = transform.FindFirst("膀胱子按钮");
allBigBtn.Add(PangGuang);
JingLuoXueWeiDict.Add(PangGuang, pangGuangChild);
Button ShenJing = transform.FindFirst<Button>("肾经");
GameObject shenJingChild = transform.FindFirst("肾经子按钮");
allBigBtn.Add(ShenJing);
JingLuoXueWeiDict.Add(ShenJing, shenJingChild);
Button XinBao = transform.FindFirst<Button>("心包");
GameObject xinBaoChild = transform.FindFirst("心包子按钮");
allBigBtn.Add(XinBao);
JingLuoXueWeiDict.Add(XinBao, xinBaoChild);
Button SanJiao = transform.FindFirst<Button>("三焦");
GameObject sanJiaoChild = transform.FindFirst("三焦子按钮");
allBigBtn.Add(SanJiao);
JingLuoXueWeiDict.Add(SanJiao, sanJiaoChild);
Button DanJing = transform.FindFirst<Button>("胆经");
GameObject danJingChild = transform.FindFirst("胆经子按钮");
allBigBtn.Add(DanJing);
JingLuoXueWeiDict.Add(DanJing, danJingChild);
Button GanJing = transform.FindFirst<Button>("肝经");
GameObject ganJingChild = transform.FindFirst("肝经子按钮");
allBigBtn.Add(GanJing);
JingLuoXueWeiDict.Add(GanJing, ganJingChild);
Button RenMai = transform.FindFirst<Button>("任脉");
GameObject renMaiChild = transform.FindFirst("任脉子按钮");
allBigBtn.Add(RenMai);
JingLuoXueWeiDict.Add(RenMai, renMaiChild);
Button DuMai = transform.FindFirst<Button>("督脉");
GameObject duMaiChild = transform.FindFirst("督脉子按钮");
allBigBtn.Add(DuMai);
JingLuoXueWeiDict.Add(DuMai, duMaiChild);
Button QiXue = transform.FindFirst<Button>("奇穴");
GameObject qiXueChild = transform.FindFirst("奇穴子按钮");
allBigBtn.Add(QiXue);
JingLuoXueWeiDict.Add(QiXue, qiXueChild);
#endregion
for (int i = 0; i < allBigBtn.Count; i++)
{
int id = i;
allBigBtn[i].onClick.AddListener(() =>
{
this.Log(id);
BtnAddListener(allBigBtn[id]);
});
}
}
void BtnAddListener(Button btn)
{
for (int j = 0; j < allBigBtn.Count; j++)
{
if (allBigBtn[j].Equals(btn))
{
///切换选中按钮的背景
allBigBtn[j].GetComponent<BtnImage>().OnEnterBtn();
///根据大按钮的名称在表格中查找到相应的子物体并进行实例化
if (!isCreateBtnLst.Contains(allBigBtn[j].GetComponentInChildren<Text>().text))
{
CreateBtnAsName(allBigBtn[j]);
isCreateBtnLst.Add(allBigBtn[j].GetComponentInChildren<Text>().text);
}
//打开相应的子按钮
foreach (var item in JingLuoXueWeiDict)
{
if (item.Key.Equals(allBigBtn[j]))
{
item.Value.SetActive(true);
}
else
{
item.Value.SetActive(false);
}
}
//JingLuoXueWeiDict[allBigBtn[j]].SetActive(true);
LayoutRebuilder.ForceRebuildLayoutImmediate(allBigBtn[j].transform.parent.GetComponent<RectTransform>());
//打开提示框
uiManager.CloseUI<TipSmallPanel>();
GameManager.Instance.uiManager.ShowUI<TipBigPanel>(null, btn.GetComponentInChildren<Text>().text);
}
else
{
allBigBtn[j].GetComponent<BtnImage>().OnExitBtn();
}
}
}
/// <summary>
/// 根据表格创建子按钮
/// </summary>
/// <param name="btn"></param>
public void CreateBtnAsName(Button btn)
{
List<JingLuoSmall> all = MVC.GetModel<GameModel>().excelData.allJingLuoSmall;
for (int i = 0; i < all.Count; i++)
{
if (all[i].name.Equals(btn.GetComponentInChildren<Text>().text))
{
GameObject go = Resources.Load<GameObject>("SmallBtn");
GameObject obj = GameObject.Instantiate(go, JingLuoXueWeiDict[btn].transform);
obj.name = all[i].XueWeiName_NoPinYin;
obj.GetComponentInChildren<Text>().text = all[i].XueWeiName_NoPinYin;
Button creatBtn = obj.GetComponent<Button>();
creatBtn.onClick.AddListener(() =>
{
for (int i = 0; i < allBigBtn.Count; i++)
{
allBigBtn[i].GetComponent<BtnImage>().OnExitBtn();
}
creatBtn.GetComponent<BtnImage>().OnEnterBtn();
uiManager.CloseUI<TipBigPanel>();
uiManager.ShowUI<TipSmallPanel>(null, creatBtn.GetComponentInChildren<Text>().text);
});
}
}
}
}