MeView.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. /* 我的信息界面(点击主界面头像进入) */
  6. public class MeView : MonoBehaviour
  7. {
  8. [SerializeField] Image avatarImage;
  9. [SerializeField] Text nameText;
  10. [SerializeField] GameObject inputs;
  11. [SerializeField] Text tipText;
  12. void Start()
  13. {
  14. this.transform.Find("AvatarFrame").GetComponent<Button>().onClick.AddListener(ShowAvatarSelectView);
  15. RenderAfterSave();
  16. }
  17. public void Back() {
  18. AudioMgr.ins.PlayBtn();
  19. Destroy(this.gameObject);
  20. }
  21. public void Save()
  22. {
  23. string[] texts = new string[6];
  24. for (int i = 0; i < inputs.transform.childCount; i++)
  25. {
  26. if (i == 2) {
  27. Transform toggleGroup = inputs.transform.GetChild(i).Find("ToggleGroup");
  28. texts[i] = toggleGroup.GetChild(0).GetComponent<Toggle>().isOn ? "1" : "2";
  29. continue;
  30. }
  31. InputField inputField = GetInputField(inputs.transform.GetChild(i));
  32. if (i == 0 && inputField.text.Trim().Length == 0) {
  33. tipText.color = Color.yellow;
  34. tipText.GetComponent<TextAutoLanguage>().SetText(11);
  35. return;
  36. }
  37. texts[i] = inputField.text.Trim();
  38. }
  39. tipText.text = "";
  40. LoginMgr.myUserInfo.nickname = texts[0];
  41. LoginMgr.myUserInfo.phone = texts[1];
  42. LoginMgr.myUserInfo.gender = int.Parse(texts[2]);
  43. LoginMgr.myUserInfo.birthday = texts[3];
  44. LoginMgr.myUserInfo.national = texts[4];
  45. LoginMgr.myUserInfo.region = texts[5];
  46. LoginMgr.myUserInfo.Save();
  47. tipText.color = Color.green;
  48. tipText.GetComponent<TextAutoLanguage>().SetText(12);
  49. HomeView.ins.RenderNameOrGender();
  50. RenderAfterSave();
  51. }
  52. InputField GetInputField(Transform transform)
  53. {
  54. return transform.Find("InputField").GetComponent<InputField>();
  55. }
  56. public void RenderAfterSave() {
  57. for (int i = 0; i < inputs.transform.childCount; i++)
  58. {
  59. if (i == 2) {
  60. inputs.transform.GetChild(i).Find("ToggleGroup")
  61. .GetChild(LoginMgr.myUserInfo.gender == 2 ? 1 : 0)
  62. .GetComponent<Toggle>().isOn = true;
  63. continue;
  64. }
  65. InputField inputField = GetInputField(inputs.transform.GetChild(i));
  66. if (i == 0) {
  67. inputField.text = LoginMgr.myUserInfo.nickname;
  68. }
  69. else if (i == 1) {
  70. inputField.text = LoginMgr.myUserInfo.phone;
  71. }
  72. else if (i == 3) {
  73. inputField.text = LoginMgr.myUserInfo.birthday;
  74. }
  75. else if (i == 4) {
  76. inputField.text = LoginMgr.myUserInfo.national;
  77. }
  78. else if (i == 5) {
  79. inputField.text = LoginMgr.myUserInfo.region;
  80. }
  81. }
  82. nameText.text = LoginMgr.myUserInfo.nickname;
  83. avatarImage.sprite = RoleMgr.GetAvatar(LoginMgr.myUserInfo.avatarID);
  84. HomeView.ins.RenderNameOrGender();
  85. }
  86. public bool avatarSelectViewInited = false;
  87. int curAvatarSelectID = 0;
  88. public void ShowAvatarSelectView() {
  89. AudioMgr.ins.PlayBtn();
  90. Transform avatarSelectView = this.transform.Find("AvatarSelectView");
  91. avatarSelectView.gameObject.SetActive(true);
  92. if (avatarSelectViewInited) {
  93. } else {
  94. avatarSelectViewInited = true;
  95. curAvatarSelectID = LoginMgr.myUserInfo.avatarID;
  96. avatarSelectView.Find("FrameBox/BtnClose").GetComponent<Button>().onClick.AddListener(CloseAvatarSelectView);
  97. GridLayoutGroup gridLayoutGroup = this.transform.GetComponentInChildren<GridLayoutGroup>();
  98. GameObject avatarPrefab = gridLayoutGroup.transform.Find("Avatar").gameObject;
  99. for (int id = 0; id < RoleMgr.GetAvatarListLen(); id++) {
  100. if (RoleMgr.IsRoleAvatar(id)) continue;
  101. GameObject avatar = GameObject.Instantiate(avatarPrefab, gridLayoutGroup.transform);
  102. avatar.transform.Find("Mask/Sprite").GetComponent<Image>().sprite = RoleMgr.GetAvatar(id);
  103. avatar.transform.Find("Check").gameObject.SetActive(id == curAvatarSelectID);
  104. avatar.gameObject.name = id.ToString();
  105. int aid = id; //记录该值
  106. avatar.GetComponent<Button>().onClick.AddListener(() => {
  107. AudioMgr.ins.PlayBtn();
  108. curAvatarSelectID = aid;
  109. for (int i = 0; i < gridLayoutGroup.transform.childCount; i++) {
  110. Transform item = gridLayoutGroup.transform.GetChild(i);
  111. int theAvatarID = int.Parse(item.gameObject.name);
  112. item.Find("Check").gameObject.SetActive(theAvatarID == curAvatarSelectID);
  113. }
  114. });
  115. }
  116. Destroy(avatarPrefab);
  117. LayoutRebuilder.ForceRebuildLayoutImmediate(gridLayoutGroup.transform.parent.GetComponent<RectTransform>());
  118. }
  119. }
  120. public void CloseAvatarSelectView() {
  121. AudioMgr.ins.PlayBtn();
  122. this.transform.Find("AvatarSelectView").gameObject.SetActive(false);
  123. if (curAvatarSelectID != LoginMgr.myUserInfo.avatarID) {
  124. LoginMgr.myUserInfo.avatarID = curAvatarSelectID;
  125. //render
  126. avatarImage.sprite = RoleMgr.GetAvatar(curAvatarSelectID);
  127. HomeView.ins.RenderMyAvatarSprite();
  128. //save data
  129. LoginMgr.myUserInfo.Save();
  130. }
  131. }
  132. }