Ludo-3D/Assets/Scripts/UI/Pages/Screens/GameHUDScreen.cs

68 lines
2.0 KiB
C#
Raw Normal View History

2026-01-28 15:51:45 +05:30
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class GameHUDScreen : ScreenBase
2026-01-28 15:51:45 +05:30
{
[Header("Buttons")]
2026-01-28 20:46:45 +05:30
[SerializeField] private Button diceBtn;
2026-01-28 15:51:45 +05:30
[SerializeField] private Button pauseBtn;
[Header("Text")]
[SerializeField] private TMP_Text diceCountText;
[SerializeField] private TMP_Text playerTurnText;
private SoundManager soundManager;
private UIManager uiManager;
2026-01-28 15:51:45 +05:30
private void OnEnable()
{
pauseBtn.onClick.AddListener(OnClick_PauseButton);
diceBtn.onClick.AddListener(OnClick_DiceButton);
2026-01-28 15:51:45 +05:30
}
private void OnDisable()
{
pauseBtn.onClick.RemoveListener(OnClick_PauseButton);
diceBtn.onClick.RemoveListener(OnClick_DiceButton);
2026-01-28 15:51:45 +05:30
}
private void OnClick_PauseButton()
2026-01-28 15:51:45 +05:30
{
soundManager = soundManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<SoundManager>() : soundManager;
soundManager?.PlayGameSoundClip(SoundType.ButtonClick);
screenManager.HideScreen(screenType);
2026-01-28 15:51:45 +05:30
PopupManager popupManager = InterfaceManager.Instance?.GetInterfaceInstance<PopupManager>();
popupManager.ShowPopup(PopupType.PauseMenuPopup);
SetUIManager();
uiManager.GameManager.SetGameState(GameState.IsPaused);
}
private void OnClick_DiceButton()
{
SetUIManager();
uiManager.OnDiceViewInteracted();
2026-01-28 15:51:45 +05:30
}
private void SetUIManager()
2026-01-28 20:46:45 +05:30
{
uiManager = uiManager == null ? InterfaceManager.Instance?.GetInterfaceInstance<UIManager>() : uiManager;
2026-01-28 20:46:45 +05:30
}
2026-01-30 22:17:18 +05:30
2026-02-06 19:26:29 +05:30
public void UpdatePlayerTurnText(PlayerType playerType, int remSec)
2026-01-30 22:17:18 +05:30
{
Debug.Log($"UpdateTurnText: Player Turn :: {(PlayerColorType)((int)playerType)} ({remSec})");
2026-02-06 19:26:29 +05:30
playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)} ({remSec})";
}
public void UpdateBotTurnText(PlayerType playerType)
{
Debug.Log($"UpdateTurnText: Bot Turn :: {(PlayerColorType)((int)playerType)}");
2026-02-06 19:26:29 +05:30
playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)}";
2026-01-30 22:17:18 +05:30
}
2026-01-28 15:51:45 +05:30
}