using asap.core; using game; using GameCore; using System; using TMPro; using UnityEngine; using UnityEngine.UI; using UniRx; using System.Threading.Tasks; public class OnLvChangeEvent { public int lvl; } public class UITopLevel : MonoBehaviour { public Button btn_level; public TMP_Text text_name; public Head head; public TMP_Text text_grade; public GameObject redpoint; PlayerData playerData; IDisposable disposable; void Start() { playerData = GContext.container.Resolve(); IUserService userService = GContext.container.Resolve(); text_name.text = userService.DisplayName; head.SetData(userService.AvatarUrl); btn_level.onClick.AddListener(OnClickLevel); text_grade.text = GContext.container.Resolve().lv.ToString(); disposable = GContext.OnEvent().Subscribe(OnLvChange); redpoint.SetActive(GContext.container.Resolve().PTSRed()); } async void OnClickLevel() { var _fishingEventData = GContext.container.Resolve(); if (playerData.OpenGrade) { await UIManager.Instance.ShowUI(UITypes.PlayerGradePanel); GContext.Publish(new HideHomePanelEvent()); } else { ToastPanel.Show(_fishingEventData.GetTipforUnlocked(playerData.OpenGradeID)); } } public async void OnLvChange(OnLvChangeEvent onLvChangeEvent) { await Task.Delay(1000); text_grade.text = onLvChangeEvent.lvl.ToString(); } private void OnDestroy() { disposable?.Dispose(); } }