330 lines
8.9 KiB
C#
330 lines
8.9 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using TMPro;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
|
||
public class EquipPanel : BasePanel
|
||
{
|
||
//按钮初始颜色是白色 点击后变成灰色
|
||
private string imgColor = "A6A6A6";
|
||
//按钮字体初始颜色 灰青
|
||
private string txtColor1 = "4A5551";
|
||
//按钮字体点击颜色 浅灰
|
||
private string txtColor2 = "CDDACF";
|
||
|
||
public Button btnClose;
|
||
public Button btnTou;
|
||
public Button btnYi;
|
||
public Button btnShou;
|
||
public Button btnYao;
|
||
public Button btnTui;
|
||
public Button btnXie;
|
||
public Text txtTou;
|
||
public Text txtYi;
|
||
public Text txtShou;
|
||
public Text txtYao;
|
||
public Text txtTui;
|
||
public Text txtXie;
|
||
|
||
public Button btnAll;
|
||
public Button btnToukui;
|
||
public Button btnZhanPao;
|
||
public Button btnHuShou;
|
||
public Button btnHuYao;
|
||
public Button btnHuTui;
|
||
public Button btnZhanXue;
|
||
public Button btnFenJie;
|
||
|
||
public Text txtAll;
|
||
public Text txtToukui;
|
||
public Text txtZhanPao;
|
||
public Text txtHuShou;
|
||
public Text txtHuYao;
|
||
public Text txtHuTui;
|
||
public Text txtZhanXue;
|
||
public Text txtFenJie;
|
||
|
||
//上下滑动框
|
||
public ScrollRect sv;
|
||
|
||
//装备预设体
|
||
public GameObject btnEquip;
|
||
|
||
//选择的按钮
|
||
private Button btnChoose;
|
||
//选择的文字
|
||
private Text txtChoose;
|
||
|
||
|
||
private UserEquipInfo userEquip;
|
||
//装备集合,用于更新页面
|
||
private List<GameObject> equipList = new List<GameObject>();
|
||
|
||
public override void Init()
|
||
{
|
||
btnChoose = btnAll;
|
||
txtChoose = txtAll;
|
||
userEquip = GameDataMgr.Instance.userEquip;
|
||
|
||
//进页面就更新界面
|
||
UpdatePanel();
|
||
|
||
btnClose.onClick.AddListener(() =>
|
||
{
|
||
UIManager.Instance.HidePanel<EquipPanel>();
|
||
});
|
||
//全部按钮
|
||
btnAll.onClick.AddListener(() =>
|
||
{
|
||
//不是当前按钮才更新
|
||
if (btnChoose!=btnAll)
|
||
{
|
||
//更新界面
|
||
UpdateAllEquip();
|
||
}
|
||
});
|
||
//头盔按钮
|
||
btnToukui.onClick.AddListener(() =>
|
||
{
|
||
//不是当前按钮才更新
|
||
if (btnChoose != btnToukui)
|
||
{
|
||
//更新界面
|
||
//设置按钮颜色
|
||
SetColor(btnToukui, txtToukui);
|
||
UpdateEquip(1);
|
||
}
|
||
});
|
||
//战袍按钮
|
||
btnZhanPao.onClick.AddListener(() =>
|
||
{
|
||
//不是当前按钮才更新
|
||
if (btnChoose != btnZhanPao)
|
||
{
|
||
//更新界面
|
||
//设置按钮颜色
|
||
SetColor(btnZhanPao, txtZhanPao);
|
||
UpdateEquip(2);
|
||
}
|
||
});
|
||
//护手按钮
|
||
btnHuShou.onClick.AddListener(() =>
|
||
{
|
||
//不是当前按钮才更新
|
||
if (btnChoose != btnHuShou)
|
||
{
|
||
//更新界面
|
||
//设置按钮颜色
|
||
SetColor(btnHuShou, txtHuShou);
|
||
UpdateEquip(3);
|
||
}
|
||
});
|
||
//护腰按钮
|
||
btnHuYao.onClick.AddListener(() =>
|
||
{
|
||
//不是当前按钮才更新
|
||
if (btnChoose != btnHuYao)
|
||
{
|
||
//更新界面
|
||
//设置按钮颜色
|
||
SetColor(btnHuYao, txtHuYao);
|
||
UpdateEquip(4);
|
||
}
|
||
});
|
||
//护腿按钮
|
||
btnHuTui.onClick.AddListener(() =>
|
||
{
|
||
//不是当前按钮才更新
|
||
if (btnChoose != btnHuTui)
|
||
{
|
||
//更新界面
|
||
//设置按钮颜色
|
||
SetColor(btnHuTui, txtHuTui);
|
||
UpdateEquip(5);
|
||
}
|
||
});
|
||
//战靴按钮
|
||
btnZhanXue.onClick.AddListener(() =>
|
||
{
|
||
//不是当前按钮才更新
|
||
if (btnChoose != btnZhanXue)
|
||
{
|
||
//更新界面
|
||
//设置按钮颜色
|
||
SetColor(btnZhanXue, txtZhanXue);
|
||
UpdateEquip(6);
|
||
}
|
||
});
|
||
//分解按钮
|
||
btnFenJie.onClick.AddListener(() =>
|
||
{
|
||
//不是当前按钮才更新
|
||
if (btnChoose != btnFenJie)
|
||
{
|
||
//更新界面
|
||
//设置按钮颜色
|
||
SetColor(btnFenJie, txtFenJie);
|
||
UpdateAllEquip();
|
||
}
|
||
});
|
||
|
||
//已装备头部按钮
|
||
btnTou.onClick.AddListener(() =>
|
||
{
|
||
DressEquipBtn("tou");
|
||
});
|
||
//已装备战袍按钮
|
||
btnYi.onClick.AddListener(() =>
|
||
{
|
||
DressEquipBtn("yi");
|
||
});
|
||
//已装备护手按钮
|
||
btnShou.onClick.AddListener(() =>
|
||
{
|
||
DressEquipBtn("shou");
|
||
});
|
||
//已装备护腰按钮
|
||
btnYao.onClick.AddListener(() =>
|
||
{
|
||
DressEquipBtn("yao");
|
||
});
|
||
//已装备护腿按钮
|
||
btnTui.onClick.AddListener(() =>
|
||
{
|
||
DressEquipBtn("tui");
|
||
});
|
||
//已装备战靴按钮
|
||
btnXie.onClick.AddListener(() =>
|
||
{
|
||
DressEquipBtn("xie");
|
||
});
|
||
}
|
||
|
||
/// <summary>
|
||
/// 已穿戴装备按钮点击事件
|
||
/// </summary>
|
||
private void DressEquipBtn(string name)
|
||
{
|
||
if (GameDataMgr.Instance.userEquip.dressEquip.ContainsKey(name))
|
||
{
|
||
if (GameDataMgr.Instance.userEquip.dressEquip[name] != null)
|
||
{
|
||
EquipDressPanel dress = UIManager.Instance.ShowPanel<EquipDressPanel>(E_UILayer.System);
|
||
dress.UpdatePanel(GameDataMgr.Instance.userEquip.dressEquip[name]);
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 按钮点击改变按钮的颜色
|
||
/// </summary>
|
||
/// <param name="btn"></param>
|
||
/// <param name="txt"></param>
|
||
public void SetColor(Button btn, Text txt)
|
||
{
|
||
//设置颜色前先把上一次的按钮颜色重置
|
||
if (btnChoose != null && txtChoose != null)
|
||
{
|
||
btnChoose.image.color = Color.white;
|
||
txtChoose.color = GameMgr.Instance.HexToColor(txtColor1);
|
||
}
|
||
//然后设置此次点击的按钮颜色
|
||
btn.image.color = GameMgr.Instance.HexToColor(imgColor);
|
||
txt.color = GameMgr.Instance.HexToColor(txtColor2);
|
||
//设置为新的按钮,方便下一次重置颜色
|
||
btnChoose = btn;
|
||
txtChoose = txt;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 面板更新
|
||
/// </summary>
|
||
public void UpdatePanel()
|
||
{
|
||
//更新全部
|
||
UpdateAllEquip();
|
||
//设置按钮颜色
|
||
SetColor(btnAll, txtAll);
|
||
|
||
//更新已穿戴装备
|
||
if (userEquip.dressEquip.ContainsKey("tou"))
|
||
{
|
||
txtTou.text = userEquip.dressEquip["tou"].name;
|
||
txtTou.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["tou"].equipColor);
|
||
}
|
||
if (userEquip.dressEquip.ContainsKey("yi"))
|
||
{
|
||
txtYi.text = userEquip.dressEquip["yi"].name;
|
||
txtYi.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["yi"].equipColor);
|
||
}
|
||
if (userEquip.dressEquip.ContainsKey("shou"))
|
||
{
|
||
txtShou.text = userEquip.dressEquip["shou"].name;
|
||
txtShou.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["shou"].equipColor);
|
||
}
|
||
if (userEquip.dressEquip.ContainsKey("yao"))
|
||
{
|
||
txtYao.text = userEquip.dressEquip["yao"].name;
|
||
txtYao.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["yao"].equipColor);
|
||
}
|
||
if (userEquip.dressEquip.ContainsKey("tui"))
|
||
{
|
||
txtTui.text = userEquip.dressEquip["tui"].name;
|
||
txtTui.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["tui"].equipColor);
|
||
}
|
||
if (userEquip.dressEquip.ContainsKey("xie"))
|
||
{
|
||
txtXie.text = userEquip.dressEquip["xie"].name;
|
||
txtXie.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["xie"].equipColor);
|
||
}
|
||
}
|
||
|
||
//按钮点击更新页面
|
||
private void UpdateEquip(int equipType)
|
||
{
|
||
//1 头,2衣服,3手,4腰,5腿,6鞋
|
||
//先清空装备列表
|
||
for (int i = 0; i < equipList.Count; i++)
|
||
{
|
||
Destroy(equipList[i]);
|
||
}
|
||
equipList.Clear();
|
||
|
||
for (int i = 0; i < userEquip.itemEquip.Count; i++)
|
||
{
|
||
if (userEquip.itemEquip[i].equipType==equipType)
|
||
{
|
||
GameObject go = Instantiate(btnEquip);
|
||
go.GetComponent<BtnEquip>().UpdatePanel(userEquip.itemEquip[i]);
|
||
go.transform.SetParent(sv.content, false);
|
||
equipList.Add(go);
|
||
}
|
||
}
|
||
}
|
||
|
||
//全部装备
|
||
private void UpdateAllEquip()
|
||
{
|
||
//先清空装备列表
|
||
for (int i = 0; i < equipList.Count; i++)
|
||
{
|
||
Destroy(equipList[i]);
|
||
}
|
||
equipList.Clear();
|
||
|
||
for (int i = 0; i < userEquip.itemEquip.Count; i++)
|
||
{
|
||
GameObject go = Instantiate(btnEquip);
|
||
go.GetComponent<BtnEquip>().UpdatePanel(userEquip.itemEquip[i]);
|
||
go.transform.SetParent(sv.content,false);
|
||
equipList.Add(go);
|
||
}
|
||
}
|
||
|
||
void OnDestroy()
|
||
{
|
||
equipList = null;
|
||
}
|
||
}
|