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 equipList = new List(); public override void Init() { btnChoose = btnAll; txtChoose = txtAll; userEquip = GameDataMgr.Instance.userEquip; //进页面就更新界面 UpdatePanel(); btnClose.onClick.AddListener(() => { UIManager.Instance.HidePanel(); }); //全部按钮 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(); } }); } /// /// 按钮点击改变按钮的颜色 /// /// /// 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; } /// /// 面板更新 /// 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"].color); } if (userEquip.dressEquip.ContainsKey("yi")) { txtYi.text = userEquip.dressEquip["yi"].name; txtYi.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["yi"].color); } if (userEquip.dressEquip.ContainsKey("shou")) { txtShou.text = userEquip.dressEquip["shou"].name; txtShou.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["shou"].color); } if (userEquip.dressEquip.ContainsKey("yao")) { txtYao.text = userEquip.dressEquip["yao"].name; txtYao.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["yao"].color); } if (userEquip.dressEquip.ContainsKey("tui")) { txtTui.text = userEquip.dressEquip["tui"].name; txtTui.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["tui"].color); } if (userEquip.dressEquip.ContainsKey("xie")) { txtXie.text = userEquip.dressEquip["xie"].name; txtXie.color = GameMgr.Instance.HexToColor(userEquip.dressEquip["xie"].color); } } //按钮点击更新页面 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().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().UpdatePanel(userEquip.itemEquip[i]); go.transform.SetParent(sv.content,false); equipList.Add(go); } } void OnDestroy() { equipList = null; } }