This repository has been archived on 2024-11-20. You can view files and clone it, but cannot push or open issues or pull requests.
colourmeok/ColourMeOKGame/Assets/Scripts/SideViewUI.cs

64 lines
No EOL
1.8 KiB
C#

using UnityEngine;
using UnityEngine.UIElements;
/// <summary>
/// singleton for a single source of truth game state and flow management
/// </summary>
public class SideViewUI : MonoBehaviour
{
/// <summary>
/// settings button for showing the settings menu
/// </summary>
private Button _accountButton;
/// <summary>
/// leaderboard button for showing the leaderboard
/// </summary>
private Button _leaderboardButton;
/// <summary>
/// play button for starting the game
/// </summary>
private Button _playButton;
/// <summary>
/// function to subscribe button events to their respective functions
/// </summary>
private void OnEnable()
{
var ui = GetComponent<UIDocument>().rootVisualElement;
_playButton = ui.Q<Button>("PlayButton");
_playButton.clicked += OnPlayButtonClicked;
_leaderboardButton = ui.Q<Button>("LeaderboardButton");
_leaderboardButton.clicked += OnLeaderboardButtonClicked;
_accountButton = ui.Q<Button>("AccountButton");
_accountButton.clicked += OnAccountButtonClicked;
}
/// <summary>
/// function to show the play view
/// </summary>
private static void OnPlayButtonClicked()
{
GameManager.Instance.ui.SetDisplayState(UIManager.DisplayState.PlayView);
}
/// <summary>
/// function to show the leaderboard view
/// </summary>
private static void OnLeaderboardButtonClicked()
{
GameManager.Instance.ui.SetDisplayState(UIManager.DisplayState.LeaderboardView);
}
/// <summary>
/// function to show the account view
/// </summary>
private static void OnAccountButtonClicked()
{
GameManager.Instance.ui.SetDisplayState(UIManager.DisplayState.AccountView);
}
}