优化 UI 效果
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user