using System; using asap.core; using game; using GameCore; using TMPro; using UnityEngine; using UnityEngine.UI; public class AccountSwitchPopupPanel : MonoBehaviour { [SerializeField] private Head currentAvatar; [SerializeField] private TMP_Text currentDisplayName; [SerializeField] private TMP_Text currentLevel; [SerializeField] private Toggle usingCurrentAccount; [SerializeField] private Head savedAvatar; [SerializeField] private TMP_Text savedDisplayName; [SerializeField] private TMP_Text savedLevel; [SerializeField] private Toggle usingSavedAccount; [SerializeField] private Button confirmBtn; private AccountSwitchConfirmPopupPanel.ChangeLinkAccountData changeLinkAccountData = null; private void OnEnable() { confirmBtn.onClick.AddListener(OnConfirm); } private void OnDisable() { confirmBtn.onClick.RemoveListener(OnConfirm); } // public void SetData(string otherDisplayName, string otherAvatar, int otherLevel, int otherUserId, EAccoutType otherAccoutType) // { // var userService = GContext.container.Resolve(); // var playerData = GContext.container.Resolve(); // currentDisplayName.text = userService.DisplayName; // currentAvatar.SetData(userService.AvatarUrl); // currentLevel.text = playerData.lv.ToString(); // usingCurrentAccount.isOn = otherLevel < playerData.lv; // // savedDisplayName.text = otherDisplayName; // savedAvatar.SetData(otherAvatar); // savedLevel.text = otherLevel.ToString(); // // usingSavedAccount.isOn = otherLevel >= playerData.lv; // // changeLinkAccountData = new AccountSwitchConfirmPopupPanel.ChangeLinkAccountData() // { // accoutType = otherAccoutType, // oldUserId = otherUserId, // newUserId = int.Parse(userService.CustomId) // }; // } private async void OnConfirm() { try { var confirmGo = await UIManager.Instance.GetUIAsync(UITypes.AccountSwitchConfirmPopupPanel); var confirmPanel = confirmGo.GetComponent(); var isUsingSavedAccount = usingSavedAccount.isOn; if (isUsingSavedAccount) { confirmPanel.SetData(savedDisplayName.text, savedAvatar.icon_head.sprite, int.Parse(savedLevel.text)); } else { confirmPanel.SetData(currentDisplayName.text, currentAvatar.icon_head.sprite, int.Parse(currentLevel.text), changeLinkAccountData); } UIManager.Instance.DestroyUI(UITypes.AccountSwitchPopupPanel); } catch (Exception e) { Debug.LogError(e); } } }