| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 | 
							- using System.Collections;
 
- using System.Collections.Generic;
 
- using UnityEngine;
 
- using UnityEngine.UI;
 
- using JCUnityLib;
 
- using UnityEngine.EventSystems;
 
- using UnityEngine.Events;
 
- public class BoxUserSettings : MonoBehaviour
 
- {
 
-     [SerializeField] GameObject inputs;
 
-     [SerializeField] Sprite bgOn;
 
-     [SerializeField] Sprite bgOff;
 
-     [SerializeField] Image[] bgArray;
 
-     InputField inputFieldNickname;//输入框组件
 
-     bool isFocused = false;
 
-     void OnEnable()
 
-     {
 
-         RenderInfo();
 
-         RenderAvatar();
 
-     }
 
-     void Start()
 
-     {
 
-         inputFieldNickname = inputs.transform.Find("Nickname").GetComponentInChildren<InputField>();
 
-         inputFieldNickname.onEndEdit.AddListener(s => {
 
-             LoginMgr.myUserInfo.nickname = s;
 
-             RenderInfo();
 
-             LoginMgr.myUserInfo.Save();
 
-         });
 
-         //var eventTrigger = inputFieldNickname.gameObject.AddComponent<EventTrigger>();
 
-         //UnityAction<BaseEventData> selectEvent = OnInputFieldClicked;
 
-         //EventTrigger.Entry onClick = new EventTrigger.Entry()
 
-         //{
 
-         //    eventID = EventTriggerType.PointerClick
 
-         //};
 
-         //onClick.callback.AddListener(selectEvent);
 
-         //eventTrigger.triggers.Add(onClick);
 
-     }
 
-     private void Update()
 
-     {
 
-         if (isFocused != inputFieldNickname.isFocused)
 
-         {
 
-             isFocused = inputFieldNickname.isFocused;
 
-             if (isFocused) setStateBg(1);
 
-             //else bgArray[1].sprite = bgOff;
 
-         }
 
-     }
 
-     private void OnInputFieldClicked(BaseEventData data)
 
-     {
 
-         //TODO: 点击事件
 
-         setStateBg(1);
 
-     }
 
-     void RenderInfo()
 
-     {
 
-         inputs.transform.Find("Nickname").GetComponentInChildren<InputField>().text 
 
-             = LoginMgr.myUserInfo.nickname;
 
-         inputs.transform.Find("Mobile").GetComponentInChildren<InputField>().text
 
-             = LoginMgr.myUserInfo.phone;
 
-         inputs.transform.Find("Email").GetComponentInChildren<InputField>().text
 
-             = LoginMgr.myUserInfo.email;
 
-         inputs.transform.Find("Birthday").GetComponentInChildren<InputField>().text
 
-             = LoginMgr.myUserInfo.birthday;
 
-         //如果是中国,直接翻译中国两个字
 
-         //inputs.transform.Find("ItemBox/Region").GetComponentInChildren<InputField>().text
 
-         //    = TextAutoLanguage2.GetLanguage() == LanguageEnum.English && LoginMgr.myUserInfo.country == "中国" ? "China" : LoginMgr.myUserInfo.country;
 
-         inputs.transform.Find("ItemBox/Region").GetComponentInChildren<InputField>().text = LoginMgr.myUserInfo.country;
 
-         inputs.transform.Find("ItemBox/Gender/Text0").gameObject.SetActive(LoginMgr.myUserInfo.gender != 2);
 
-         inputs.transform.Find("ItemBox/Gender/Text1").gameObject.SetActive(LoginMgr.myUserInfo.gender == 2);
 
-         inputs.transform.Find("FixBox/Nickname").GetComponent<Text>().text = LoginMgr.myUserInfo.nickname;
 
-         inputs.transform.Find("FixBox/ID").GetComponent<Text>().text = "ID: " + LoginMgr.myUserInfo.id;
 
-         GetComponentInParent<PersonalView>().NotifyUserInfoRefresh();
 
-     }
 
-     void RenderAvatar()
 
-     {
 
-         Image avatarImage = inputs.transform.Find("FixBox/Avatar/Mask/Sprite").GetComponent<Image>();
 
-         RoleMgr.SetAvatarToImage(avatarImage, LoginMgr.myUserInfo.avatarID, LoginMgr.myUserInfo.avatarUrl);
 
-         GetComponentInParent<PersonalView>().NotifyUserInfoRefresh();
 
-     }
 
-     public void setStateBg(int index) {
 
-         for (int i = 0; i < bgArray.Length; i++)
 
-         {
 
-             if (i == index)
 
-             {
 
-                 bgArray[i].sprite = bgOn;
 
-             }
 
-             else {
 
-                 bgArray[i].sprite = bgOff;
 
-             }
 
-         }
 
-     }
 
-     public void OnClick_BindPhone()
 
-     {
 
-         setStateBg(0);
 
-         AudioMgr.ins.PlayBtn();
 
-         RelateValidateView relateValidateView =
 
-                 Instantiate(SceneResourceManager.Instance.GetPrefab("RelateValidateView"))
 
-                     .GetComponent<RelateValidateView>();
 
-         CanvasUtils.PlusSortOrder(gameObject.GetComponentInParent<Canvas>().gameObject, relateValidateView.gameObject, 1);
 
-         relateValidateView.InitForPhone2();
 
-         relateValidateView.onValidateSuccess = (a, b, c) => {
 
-             relateValidateView?.BanButtons();
 
-             StartCoroutine(UserController.Instance.SavePhone(a, b, c, (res) => {
 
-                 if (res.code == 0)
 
-                 {
 
-                     PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByKey("RelateValidateView-pass1"));
 
-                     LoginMgr.myUserInfo.phone = a;
 
-                     RenderInfo();
 
-                     relateValidateView?.CloseView();
 
-                 }
 
-             }));
 
-         };
 
-     }
 
-     public void OnClick_BindEmail()
 
-     {
 
-         setStateBg(2);
 
-         AudioMgr.ins.PlayBtn();
 
-         RelateValidateView relateValidateView =
 
-                 Instantiate(SceneResourceManager.Instance.GetPrefab("RelateValidateView"))
 
-                     .GetComponent<RelateValidateView>();
 
-         CanvasUtils.PlusSortOrder(gameObject.GetComponentInParent<Canvas>().gameObject, relateValidateView.gameObject, 1);
 
-         relateValidateView.InitForEmail2();
 
-         relateValidateView.onValidateSuccess = (a, b, c) => {
 
-             relateValidateView?.BanButtons();
 
-             StartCoroutine(UserController.Instance.SaveEmail(a, b, c, (res) => {
 
-                 if (res.code == 0)
 
-                 {
 
-                     PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByKey("RelateValidateView-pass1"));
 
-                     LoginMgr.myUserInfo.email = a;
 
-                     RenderInfo();
 
-                     relateValidateView?.CloseView();
 
-                 }
 
-             }));
 
-         };
 
-     }
 
-     #region 性别选择
 
-     public void OnClick_ChangeGender()
 
-     {
 
-         setStateBg(4);
 
-         AudioMgr.ins.PlayBtn();
 
-         if (LoginMgr.myUserInfo.gender == 2) LoginMgr.myUserInfo.gender = 1;
 
-         else LoginMgr.myUserInfo.gender = 2;
 
-         RenderInfo();
 
-         LoginMgr.myUserInfo.Save();
 
-     }
 
-     #endregion
 
-     #region 地区选择
 
-     private string countryCode = "", stateCode = "", cityCode = "";
 
-     public void OpenLocationPicker()
 
-     {
 
-         setStateBg(3);
 
-         AudioMgr.ins.PlayBtn();
 
-         System.Action eOnAgree = () => {
 
-             GPSTool.GetAddress((address) => {
 
-                 if (address != null)
 
-                 {
 
-                     countryCode = address[0];
 
-                     stateCode = address[1];
 
-                     cityCode = address[2];
 
-                     LoginMgr.myUserInfo.country = countryCode;
 
-                     LoginMgr.myUserInfo.state = stateCode;
 
-                     LoginMgr.myUserInfo.city = cityCode;
 
-                     RenderInfo();
 
-                     LoginMgr.myUserInfo.Save();
 
-                 }
 
-             });
 
-         };
 
-         if (!HomeView.ShowProminentBeforeConnectBLE(eOnAgree)) eOnAgree.Invoke();
 
-     }
 
-     #endregion
 
-     #region 日期选择
 
-     [SerializeField] GameObject datePickerPrefab;
 
-     public void OpenDatePicker()
 
-     {
 
-         setStateBg(5);
 
-         AudioMgr.ins.PlayBtn();
 
-         GameObject o = Instantiate(datePickerPrefab);
 
-         //o.GetComponentInChildren<JC.Unity.Picker.DatePickerGroup>().onEnter += (JC.Unity.Picker.DatePickerGroup picker) =>
 
-         //{
 
-         //    LoginMgr.myUserInfo.birthday = picker.GetSelectDateStr();
 
-         //    RenderInfo();
 
-         //    LoginMgr.myUserInfo.Save();
 
-                 
 
-         //};
 
-         o.GetComponentInChildren<DatePickerGroupNew>().onEnter += (DatePickerGroupNew picker) =>
 
-         {
 
-             LoginMgr.myUserInfo.birthday = picker.GetSelectDateStr();
 
-             RenderInfo();
 
-             LoginMgr.myUserInfo.Save();
 
-         };
 
-     }
 
-     #endregion
 
-     #region 头像选择
 
-     [SerializeField] Transform avatarSelectView;
 
-     bool avatarSelectViewInited = false;
 
-     int curAvatarSelectID = 0;
 
-     public void ShowAvatarSelectView()
 
-     {
 
-         AudioMgr.ins.PlayBtn();
 
-         avatarSelectView.gameObject.SetActive(true);
 
-         if (avatarSelectViewInited)
 
-         {
 
-         }
 
-         else
 
-         {
 
-             avatarSelectViewInited = true;
 
-             curAvatarSelectID = LoginMgr.myUserInfo.avatarID;
 
-             avatarSelectView.Find("FrameBox/BtnClose").GetComponent<Button>().onClick.AddListener(CloseAvatarSelectView);
 
-             GridLayoutGroup gridLayoutGroup = avatarSelectView.GetComponentInChildren<GridLayoutGroup>();
 
-             GameObject avatarPrefab = gridLayoutGroup.transform.Find("Avatar").gameObject;
 
-             for (int id = -1; id < RoleMgr.GetAvatarListLen(); id++)
 
-             {
 
-                 if (RoleMgr.IsRoleAvatar(id)) continue;
 
-                 if (id == -1 && string.IsNullOrWhiteSpace(LoginMgr.myUserInfo.avatarUrl)) continue;
 
-                 GameObject avatar = Instantiate(avatarPrefab, gridLayoutGroup.transform);
 
-                 Image avatarImage = avatar.transform.Find("Mask/Sprite").GetComponent<Image>();
 
-                 RoleMgr.SetAvatarToImage(avatarImage, id, LoginMgr.myUserInfo.avatarUrl);
 
-                 avatar.transform.Find("Check").gameObject.SetActive(id == curAvatarSelectID);
 
-                 avatar.gameObject.name = id.ToString();
 
-                 int aid = id; //记录该值
 
-                 avatar.GetComponent<Button>().onClick.AddListener(() => {
 
-                     AudioMgr.ins.PlayBtn();
 
-                     curAvatarSelectID = aid;
 
-                     for (int i = 0; i < gridLayoutGroup.transform.childCount; i++)
 
-                     {
 
-                         Transform item = gridLayoutGroup.transform.GetChild(i);
 
-                         int theAvatarID = int.Parse(item.gameObject.name);
 
-                         item.Find("Check").gameObject.SetActive(theAvatarID == curAvatarSelectID);
 
-                     }
 
-                 });
 
-             }
 
-             Destroy(avatarPrefab);
 
-             LayoutRebuilder.ForceRebuildLayoutImmediate(gridLayoutGroup.transform.parent.GetComponent<RectTransform>());
 
-         }
 
-     }
 
-     void CloseAvatarSelectView()
 
-     {
 
-         AudioMgr.ins.PlayBtn();
 
-         avatarSelectView.gameObject.SetActive(false);
 
-         if (curAvatarSelectID != LoginMgr.myUserInfo.avatarID)
 
-         {
 
-             LoginMgr.myUserInfo.avatarID = curAvatarSelectID;
 
-             //render
 
-             RenderAvatar();
 
-             //save data
 
-             LoginMgr.myUserInfo.Save();
 
-         }
 
-     }
 
-     #endregion
 
-     #region 删除按钮背景
 
-     public void setDeleteBtnBg()
 
-     {
 
-         setStateBg(6);
 
-     }
 
-     #endregion
 
- }
 
 
  |