using System.Collections; using System.Collections.Generic; using UnityEngine; using Kill.Managers; using UnityEngine.UI; using Kill.Network; using System.Threading.Tasks; using Kill.UI.Components; namespace Kill.UI.Pages { public class SelfInfoPage : MonoBehaviour { UserInfo userInfo; public RawImage avatarImage; public Text nicknameText; public RenamePage renamePagePrefab; public Button renameButton; public Button backButton; public SelfVerificationCodePanel verificationCodePanelPrefab; public SelfSetPasswordPanel setPasswordPanelPrefab; List passwordSetKeys = new List { "100200", "100201" }; public Button signoutButton; /// /// 0设置 1修改 /// List passwordSet; /// /// /// 0简单密码 1复杂密码 /// public Button[] setPasswordButtons; public Text[] setPasswordButtonTexts; public async Task Init(UserInfo userInfo) { this.userInfo = userInfo; UIManager.Instance.RegisterBackAction(OnBack); backButton.onClick.RemoveAllListeners(); backButton.onClick.AddListener(OnBack); renameButton.onClick.RemoveAllListeners(); renameButton.onClick.AddListener(() => { RenamePage renamePage = Instantiate(renamePagePrefab, transform); renamePage.Init(userInfo.username, CloseRenamePage, 1); }); signoutButton.onClick.RemoveAllListeners(); signoutButton.onClick.AddListener(ClickSignOut); // 在这里初始化个人信息页面,显示用户信息 if (avatarImage != null) { // 设置头像 if (userInfo.avatar != null) { await NetworkCtrl.Instance.LoadImageToUIRawImageAsync(userInfo.avatar, avatarImage); avatarImage.gameObject.SetActive(true); avatarImage.transform.parent.GetComponent().showMaskGraphic = false; } else { avatarImage.gameObject.SetActive(false); avatarImage.transform.parent.GetComponent().showMaskGraphic = true; } } if (nicknameText != null) { nicknameText.text = userInfo.username; } InitLanguageText(); } public void InitLanguageText() { passwordSet = new List(); foreach (var key in passwordSetKeys) { passwordSet.Add(LanguageManager.Instance.GetLanguage(key)); } if (userInfo.has_simple_password) { setPasswordButtonTexts[0].text = passwordSet[1]; } else { setPasswordButtonTexts[0].text = passwordSet[0]; } if (userInfo.has_complex_password) { setPasswordButtonTexts[1].text = passwordSet[1]; } else { setPasswordButtonTexts[1].text = passwordSet[0]; } setPasswordButtons[0].onClick.RemoveAllListeners(); setPasswordButtons[0].onClick.AddListener(() => OnSetPassword(0)); setPasswordButtons[1].onClick.RemoveAllListeners(); setPasswordButtons[1].onClick.AddListener(() => OnSetPassword(1)); } public void CloseRenamePage(string newNickname) { if (nicknameText != null) { nicknameText.text = newNickname; } DataManager.Instance.userInfo.username = newNickname; UIManager.Instance.RegisterBackAction(OnBack); } int passwordType = -1; SelfVerificationCodePanel verificationCodePanel; public void OnSetPassword(int passwordType) { this.passwordType = passwordType; verificationCodePanel = Instantiate(verificationCodePanelPrefab, transform); verificationCodePanel.Init(OnSureVerificationCode); } SelfSetPasswordPanel setPasswordPanel; public void OnSureVerificationCode() { Destroy(verificationCodePanel.gameObject); setPasswordPanel = Instantiate(setPasswordPanelPrefab, transform); setPasswordPanel.Init(passwordType, OnSetPasswordSuccess); } public void OnSetPasswordSuccess() { Destroy(setPasswordPanel.gameObject); UIManager.Instance.RegisterBackAction(OnBack); Init(DataManager.Instance.userInfo); } public void OnBack() { UIManager.Instance.RegisterBackAction(GetComponentInParent().OnBack); GetComponentInParent().RefreshAsync(); Destroy(gameObject); } public WindowTipCtrl signoutTip; public void ClickSignOut() { signoutTip.gameObject.SetActive(true); signoutTip.Init(OnSignOut,()=>{signoutTip.gameObject.SetActive(false);}); } public void OnSignOut() { // 清除用户数据 DataManager.Instance.ClearInfo(); // 返回登录页面 UIManager.Instance.OpenPage(UIManager.PageName.loginPage); } } }