184 lines
6.9 KiB
C#
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);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|