using asap.core; using TMPro; using UnityEngine; using UniRx; using cfg; using System; using GameCore; using DG.Tweening; public class UIResourceBar : MonoBehaviour { public int ItemId; public TMP_Text text_resource; int curResource; Item item; IDisposable _disposable; private void OnEnable() { item = GContext.container.Resolve().TbItem.GetOrDefault(ItemId); if (item != null) { curResource = (int)GContext.container.Resolve().GetItemCount(item); text_resource.text = curResource.ToString(); _disposable = GContext.OnEvent().Where(x => x.id == ItemId).Subscribe(x => { ResourceAdd(); }); } } void ResourceAdd() { DOTween.Kill("UIResourceBar" + ItemId); text_resource.text = ConvertTools.GetNumberString2(curResource); var EndResource = (int)GContext.container.Resolve().GetItemCount(item); DOTween.To(() => curResource, x => curResource = x, EndResource, 1f).OnUpdate(() => { text_resource.text = ConvertTools.GetNumberString2(curResource); }).SetId("UIResourceBar" + ItemId); } private void OnDisable() { _disposable?.Dispose(); _disposable = null; } }