using UnityEngine;
using UnityEngine.UIElements;
using UnityEngine.SceneManagement;
namespace MegaKoop.UI
{
///
/// Controller pro Main Menu s UI Toolkit
///
public class MainMenuController : MonoBehaviour
{
[Header("UI Document")]
[SerializeField] private UIDocument uiDocument;
[Header("Scene Names")]
[SerializeField] private string gameSceneName = "GameScene";
[Header("Audio")]
[SerializeField] private AudioSource audioSource;
[SerializeField] private AudioClip buttonClickSound;
[SerializeField] private AudioClip buttonHoverSound;
// Root element
private VisualElement root;
// Main Menu Elements
private Button newGameButton;
private Button continueButton;
private Button multiplayerButton;
private Button settingsButton;
private Button creditsButton;
private Button quitButton;
// Settings Panel Elements
private VisualElement settingsPanel;
private DropdownField qualityDropdown;
private Toggle fullscreenToggle;
private DropdownField resolutionDropdown;
private Slider masterVolumeSlider;
private Slider musicVolumeSlider;
private Slider sfxVolumeSlider;
private Button applyButton;
private Button backButton;
private void OnEnable()
{
// Získání UI Document
if (uiDocument == null)
uiDocument = GetComponent();
root = uiDocument.rootVisualElement;
// Inicializace UI elementů
InitializeMenuButtons();
InitializeSettingsPanel();
// Registrace event handlerů
RegisterButtonEvents();
// Načtení nastavení
LoadSettings();
}
private void OnDisable()
{
// Odregistrování event handlerů
UnregisterButtonEvents();
}
#region Initialization
private void InitializeMenuButtons()
{
newGameButton = root.Q