63 lines
1.0 KiB
C#
63 lines
1.0 KiB
C#
|
|
using UnityEngine;
|
||
|
|
using TMPro;
|
||
|
|
|
||
|
|
public class CoinManager : MonoBehaviour
|
||
|
|
{
|
||
|
|
public static CoinManager Instance;
|
||
|
|
|
||
|
|
public int startingCoins = 0;
|
||
|
|
|
||
|
|
[SerializeField]
|
||
|
|
private int currentCoins;
|
||
|
|
|
||
|
|
[Header("UI")]
|
||
|
|
public TMP_Text coinText;
|
||
|
|
|
||
|
|
private void Awake()
|
||
|
|
{
|
||
|
|
if (Instance == null)
|
||
|
|
{
|
||
|
|
Instance = this;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
Destroy(gameObject);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
currentCoins = startingCoins;
|
||
|
|
UpdateCoinUI();
|
||
|
|
}
|
||
|
|
|
||
|
|
public void AddCoins(int amount)
|
||
|
|
{
|
||
|
|
currentCoins += amount;
|
||
|
|
UpdateCoinUI();
|
||
|
|
}
|
||
|
|
|
||
|
|
public bool TrySpendCoins(int amount)
|
||
|
|
{
|
||
|
|
if (currentCoins >= amount)
|
||
|
|
{
|
||
|
|
currentCoins -= amount;
|
||
|
|
UpdateCoinUI();
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
public int GetCoins()
|
||
|
|
{
|
||
|
|
return currentCoins;
|
||
|
|
}
|
||
|
|
|
||
|
|
private void UpdateCoinUI()
|
||
|
|
{
|
||
|
|
if (coinText != null)
|
||
|
|
{
|
||
|
|
coinText.text = $"{currentCoins} G";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|