97 lines
2.9 KiB
C#
97 lines
2.9 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using TMPro;
|
|
using DG.Tweening;
|
|
|
|
public class OptionsCanvas : MonoBehaviour
|
|
{
|
|
[SerializeField] private TMP_Text optionsHeaderText;
|
|
[SerializeField] private OptionsButton graphicsButton;
|
|
[SerializeField] private OptionsButton audioButton;
|
|
[SerializeField] private OptionsButton gameplayButton;
|
|
[SerializeField] private OptionsButton controlsButton;
|
|
|
|
[Space(20)]
|
|
|
|
[SerializeField] private GameObject graphicsMenu;
|
|
[SerializeField] private GameObject audioMenu;
|
|
[SerializeField] private GameObject gameplayMenu;
|
|
[SerializeField] private GameObject controlsMenu;
|
|
|
|
private void Awake()
|
|
{
|
|
InitializeButtonEvents();
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
if (!UIManager.Instance.getInterface<GameObject>("LoginScreen").activeInHierarchy)
|
|
{
|
|
SetInitialState();
|
|
}
|
|
|
|
}
|
|
|
|
private void SetInitialState()
|
|
{
|
|
optionsHeaderText.SetText("Graphics");
|
|
|
|
graphicsButton.SetState(false, graphicsMenu);
|
|
audioButton.SetState(true, audioMenu);
|
|
gameplayButton.SetState(true, gameplayMenu);
|
|
controlsButton.SetState(true, controlsMenu);
|
|
}
|
|
|
|
private void InitializeButtonEvents()
|
|
{
|
|
graphicsButton.GetButton().onClick.AddListener(OnGraphicsButton);
|
|
audioButton.GetButton().onClick.AddListener(OnAudioButton);
|
|
gameplayButton.GetButton().onClick.AddListener(OnGameplayButton);
|
|
controlsButton.GetButton().onClick.AddListener(OnControlsButton);
|
|
}
|
|
|
|
private void OnGraphicsButton()
|
|
{
|
|
optionsHeaderText.SetText("Graphics");
|
|
|
|
graphicsButton.SetState(false, graphicsMenu);
|
|
audioButton.SetState(true, audioMenu);
|
|
gameplayButton.SetState(true, gameplayMenu);
|
|
controlsButton.SetState(true, controlsMenu);
|
|
}
|
|
|
|
private void OnAudioButton()
|
|
{
|
|
optionsHeaderText.SetText("Audio");
|
|
graphicsButton.SetState(true, graphicsMenu);
|
|
audioButton.SetState(false, audioMenu);
|
|
gameplayButton.SetState(true, gameplayMenu);
|
|
controlsButton.SetState(true, controlsMenu);
|
|
}
|
|
|
|
private void OnGameplayButton()
|
|
{
|
|
optionsHeaderText.SetText("Gameplay");
|
|
|
|
graphicsButton.SetState(true, graphicsMenu);
|
|
audioButton.SetState(true, audioMenu);
|
|
gameplayButton.SetState(false, gameplayMenu);
|
|
controlsButton.SetState(true, controlsMenu);
|
|
}
|
|
|
|
private void OnControlsButton()
|
|
{
|
|
optionsHeaderText.SetText("Controls");
|
|
|
|
graphicsButton.SetState(true, graphicsMenu);
|
|
audioButton.SetState(true, audioMenu);
|
|
gameplayButton.SetState(true, gameplayMenu);
|
|
controlsButton.SetState(false, controlsMenu);
|
|
}
|
|
|
|
public GameObject GetGraphicsMenu() => graphicsMenu;
|
|
public GameObject GetAudioMenu() => audioMenu;
|
|
public GameObject GetGameplayMenu() => gameplayMenu;
|
|
public GameObject GetControlsMenu() => controlsMenu;
|
|
}
|