Files
2026-05-26 16:15:54 +08:00

46 lines
1.3 KiB
C#

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<Tables>().TbItem.GetOrDefault(ItemId);
if (item != null)
{
curResource = (int)GContext.container.Resolve<PlayerItemData>().GetItemCount(item);
text_resource.text = curResource.ToString();
_disposable = GContext.OnEvent<ResAddEvent>().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<PlayerItemData>().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;
}
}