PKMatchView.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. public class PKMatchView : MonoBehaviour
  7. {
  8. [SerializeField] Sprite[] matchHeadBGList;
  9. void Awake()
  10. {
  11. InitBtnTabs();
  12. InitBtnStartMatch();
  13. InitMatchHeadBG();
  14. }
  15. void Start()
  16. {
  17. HomeMgr.CacheView(this);
  18. (Sprite avatar, string nickname) = RoleMgr.GetRoleInfo(LoginMgr.myUserInfo.avatarID);
  19. nickname = LoginMgr.myUserInfo.nickname;
  20. RenderPlayerInfo(1, avatar, nickname, true);
  21. SetBtnTabSelected(btnTabs[0]);
  22. RenderPlayerInfo(2, null, "", false);
  23. }
  24. void OnDestroy()
  25. {
  26. HomeMgr.RemoveCacheView(this);
  27. }
  28. #region 左栏条目切换
  29. [SerializeField] Sprite[] btnTabTextures;
  30. Button[] btnTabs = {null, null};
  31. void InitBtnTabs() {
  32. btnTabs[0] = this.transform.Find("LineV/BtnTab0").GetComponent<Button>();
  33. btnTabs[1] =this.transform.Find("LineV/BtnTab1").GetComponent<Button>();
  34. for (int i = 0; i < btnTabs.Length; i++) {
  35. Button btnTab = btnTabs[i];
  36. int btnTabIndex = i;
  37. btnTab.onClick.AddListener(() => {
  38. AudioMgr.ins.PlayBtn();
  39. ChangeMatchHeadBG(btnTabIndex);
  40. if (!IsBtnTabSelected(btnTab)) {
  41. SetBtnTabSelected(btnTab);
  42. }
  43. });
  44. }
  45. }
  46. bool IsBtnTabSelected(Button btn) {
  47. Image img = btn.GetComponent<Image>();
  48. return img.sprite.name.Equals(btnTabTextures[1].name);
  49. }
  50. void SetBtnTabSelected(Button btn) {
  51. foreach (var item in btnTabs) {
  52. Image img = item.GetComponent<Image>();
  53. img.sprite = item == btn ? btnTabTextures[1] : btnTabTextures[0];
  54. }
  55. int index = Array.IndexOf(btnTabs, btnTabs);
  56. HandleBtnTabSelectedLogic(index);
  57. }
  58. void HandleBtnTabSelectedLogic(int btnIndex) {
  59. }
  60. #endregion
  61. void InitBtnStartMatch() {
  62. this.transform.Find("BoxRight/BtnMatch").GetComponent<Button>().onClick.AddListener(() => {
  63. AudioMgr.ins.PlayBtn();
  64. GameObject.Instantiate(GameObject.Find("WindowViews").transform.Find("PKMatchingView").gameObject).SetActive(true);
  65. });
  66. }
  67. void RenderPlayerInfo(int playerID, Sprite avatar, string nickname, bool active) {
  68. this.transform.Find($"BoxRight/Player{playerID}/NameBox")
  69. .GetComponentInChildren<Text>().text = active ? nickname : "等待加入";
  70. Transform avatarT = this.transform.Find($"BoxRight/Player{playerID}/MatchHeadBG/Avatar");
  71. avatarT.gameObject.SetActive(active);
  72. avatarT.Find("Sprite").GetComponent<Image>().sprite = avatar;
  73. }
  74. void InitMatchHeadBG() {
  75. this.transform.Find("BoxRight/Player2/MatchHeadBG").GetComponent<Button>().onClick.AddListener(() => {
  76. Debug.Log("选择好友");
  77. });
  78. }
  79. void ChangeMatchHeadBG(int typeIndex) {
  80. Image img = this.transform.Find("BoxRight/Player2/MatchHeadBG").GetComponent<Image>();
  81. img.sprite = matchHeadBGList[typeIndex];
  82. img.GetComponent<Button>().enabled = typeIndex == 1;
  83. }
  84. public void Back() {
  85. AudioMgr.ins.PlayBtn();
  86. Destroy(this.gameObject);
  87. }
  88. }