using System; using UnityEngine; using UnityEngine.UI; public class RenameWin : UIBase { [SerializeField] InputField input; [SerializeField] Button btnOk; [SerializeField] Button btnRandom; [SerializeField] TextEx txtFirst; [SerializeField] TextEx txtMoney; [SerializeField] ImageEx imgMoney; RenameManager manager { get { return RenameManager.Instance; } } protected override void InitComponent() { base.InitComponent(); btnRandom.SetListener(() => { input.text = manager.GetSafeRandomName(); }); btnOk.SetListener(() => { bool isFirstRename = manager.IsFirstRename(); if (!isFirstRename && !UIHelper.CheckMoneyCount(manager.moneyType, manager.moneyNeed)) { string title = Language.Get("Mail101"); string info = Language.Get("PlayerProfile22"); ConfirmCancel.ShowPopConfirm(title, info, (bool isOk) => { if (isOk) { } else { CloseWindow(); } }); return; } if (!manager.CheckNameLimit(input.text, out var errorCode)) { manager.ShowNameErrorTip(errorCode); return; } manager.SendRenamePack(input.text); }); } protected override void OnPreOpen() { base.OnPreOpen(); manager.OnUpdatePlayerNameCountEvent += OnUpdatePlayerNameCount; manager.OnUpdateRenameResultEvent += OnUpdateRenameResultEvent; PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh; Display(); } protected override void OnPreClose() { base.OnPreClose(); manager.OnUpdatePlayerNameCountEvent -= OnUpdatePlayerNameCount; manager.OnUpdateRenameResultEvent -= OnUpdateRenameResultEvent; PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh; } private void PlayerDataRefresh(PlayerDataType type) { Display(); } private void OnUpdateRenameResultEvent() { Display(); } private void OnUpdatePlayerNameCount() { Display(); } void Display() { bool isFirstRename = manager.IsFirstRename(); txtFirst.SetActive(isFirstRename); txtMoney.SetActive(!isFirstRename); imgMoney.SetIconWithMoneyType(manager.moneyType); txtMoney.text = UIHelper.ShowUseMoney(manager.moneyType, manager.moneyNeed); } }