1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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();
- UpdateCoinsDisplay(); // 初始更新金币显示
-
- // 订阅金币变化事件
- if (GameDataManager.Instance != null)
- {
- GameDataManager.Instance.onCoinsChanged += UpdateCoinsDisplay;
- }
- }
-
- 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}";
- }
- }
- 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("打开设置");
- }
- }
|