123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using UnityEngine;
- using UnityEngine.UI;
- using TMPro;
- public class HallSceneManager : MonoBehaviour
- {
- [Header("角色设置")]
- [SerializeField] private GameObject characterPrefab;
- [SerializeField] private Transform characterSpawnPoint;
- [SerializeField] private Animator characterAnimator;
-
- [Header("UI设置")]
- [SerializeField] private Canvas mainCanvas;
- [SerializeField] private Button startGameButton;
- [SerializeField] private Button settingsButton;
- [SerializeField] private TextMeshProUGUI playerNameText;
- [SerializeField] private TextMeshProUGUI coinsText; // 新增金币文本显示
-
- private void Start()
- {
- InitializeUI();
- SpawnCharacter();
- // // 初始更新金币显示
-
- // 确保 GameDataManager 实例存在并更新数据
- if (GameDataManager.Instance != null)
- {
- GameDataManager.Instance.RefreshCoins();// 强制重新加载最新数据
- GameDataManager.Instance.onCoinsChanged += UpdateCoinsDisplay;
- UpdateCoinsDisplay();
- Debug.Log("[HallSceneManager] Initialized with current coins");
- }
- else
- {
- Debug.LogError("GameDataManager instance not found!");
- }
-
- }
-
- private void OnDestroy()
- {
- // 取消订阅事件
- if (GameDataManager.Instance != null)
- {
- GameDataManager.Instance.onCoinsChanged -= UpdateCoinsDisplay;
- }
- }
- private void UpdateCoinsDisplay()
- {
- if (coinsText != null && GameDataManager.Instance != null)
- {
- coinsText.text = GameDataManager.Instance.coins.ToString();
- //coinsText.text = $" {GameDataManager.Instance.coins}";
- Debug.Log($"Updating coins display: {GameDataManager.Instance.coins}");
- }
- else
- {
- Debug.LogWarning("Coins text or GameDataManager is null!");
- }
- }
- private void InitializeUI()
- {
- // 初始化UI按钮事件
- if (startGameButton != null)
- {
- startGameButton.onClick.AddListener(OnStartGameClick);
- }
-
- if (settingsButton != null)
- {
- settingsButton.onClick.AddListener(OnSettingsClick);
- }
- }
-
- private void SpawnCharacter()
- {
- if (characterPrefab != null && characterSpawnPoint != null)
- {
- GameObject character = Instantiate(characterPrefab, characterSpawnPoint.position, characterSpawnPoint.rotation);
- characterAnimator = character.GetComponent<Animator>();
-
- // 播放待机动画
- if (characterAnimator != null)
- {
- characterAnimator.Play("Idle");
- }
- }
- }
-
- private void OnStartGameClick()
- {
- // 开始游戏逻辑
- Debug.Log("开始游戏");
- }
-
- private void OnSettingsClick()
- {
- // 打开设置界面逻辑
- Debug.Log("打开设置");
- }
- }
|