using UnityEngine; using TMPro; using Player.Wallet; using UnityEngine.SceneManagement; public class CoinDisplayManager : MonoBehaviour { [SerializeField] private TextMeshProUGUI coinsText; private void OnEnable() { SceneManager.sceneLoaded += OnSceneLoaded; InitializeCoinDisplay(); } private void OnDisable() { SceneManager.sceneLoaded -= OnSceneLoaded; } private void OnSceneLoaded(Scene scene, LoadSceneMode mode) { InitializeCoinDisplay(); } private void InitializeCoinDisplay() { if (GameDataManager.Instance != null) { // 重新绑定UI文本 GameDataManager.Instance.SetGameSceneCoinsText(coinsText); // 强制刷新显示 if (coinsText != null) { coinsText.text = $"{GameDataManager.Instance.coins}"; } // 重新订阅事件 GameDataManager.Instance.onCoinsChanged -= UpdateCoinDisplay; GameDataManager.Instance.onCoinsChanged += UpdateCoinDisplay; } } private void UpdateCoinDisplay() { if (coinsText != null && GameDataManager.Instance != null) { coinsText.text = $"{GameDataManager.Instance.coins}"; } } /* private void Start() { InitializeCoinDisplay(); }*/ }