优化 UI 效果

This commit is contained in:
2026-10-03 18:30:31 +08:00
parent e0488cc790
commit 0077e3449d
89 changed files with 58194 additions and 23636 deletions
@@ -16,6 +16,11 @@ namespace SepCore.UI
[SerializeField] private TMP_Text _descriptionText;
[SerializeField] private TMP_Text _costText;
[SerializeField] private CommonButton _purchaseButton = null;
[SerializeField] private TMP_Text _purchaseLabel = null;
[SerializeField] private CanvasGroup _canvasGroup = null;
private GoodsItemContext _data;
private int _index = -1;
@@ -26,6 +31,9 @@ namespace SepCore.UI
EnsureListeners();
_index = index;
_data = data;
_canvasGroup.alpha = 1f;
_purchaseLabel.text = "购买";
_iconArea.OnInit(data.Icon, data.Rarity);
_titleText.text = data.Name;
@@ -37,6 +45,28 @@ namespace SepCore.UI
public void OnReset()
{
_index = -1;
_data = null;
}
public void MarkPurchased()
{
OnReset();
_canvasGroup.alpha = 0.5f;
_purchaseButton.interactable = false;
_purchaseLabel.text = "已购买";
}
public void RefreshAvailability(int playerCoin, bool weaponCapacityFull)
{
if (_index < 0)
{
return;
}
bool weaponFull = _data.ItemType == ItemType.Weapon && weaponCapacityFull;
bool affordable = playerCoin >= _data.Price;
_purchaseButton.interactable = affordable && !weaponFull;
_purchaseLabel.text = weaponFull ? "武器已满" : affordable ? "购买" : "金币不足";
}
private void EnsureListeners()
@@ -48,8 +78,7 @@ namespace SepCore.UI
_listenersBound = true;
CommonButton button = GetComponentInChildren<CommonButton>(true);
button.onClick.AddListener(OnPurchaseClick);
_purchaseButton.onClick.AddListener(OnPurchaseClick);
}
private void OnPurchaseClick()