Files
aibis-dream/Assets/Scripts/Game Loop/StartMenu.cs
T
2025-02-23 20:31:30 +08:00

68 lines
1.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using AibisDream.Kit;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace AibisDream {
public class StartMenu : Singleton<StartMenu>
{
[SerializeField] private Button startButton;
[SerializeField] private Button selectLevelButton;
[SerializeField] private Button quitButton;
[SerializeField] private GameObject startTab;
[SerializeField] private SceneSelectionUIController sceneSelection;
[SerializeField] private GameObject levelTab;
[SerializeField] private GameObject buttonPrefab;
private void OnEnable()
{
startButton.onClick.AddListener(StartGame);
selectLevelButton.onClick.AddListener(SelectLevel);
quitButton.onClick.AddListener(QuitGame);
}
private void OnDisable()
{
startButton?.onClick.RemoveListener(StartGame);
selectLevelButton?.onClick.RemoveListener(SelectLevel);
quitButton?.onClick.RemoveListener(QuitGame);
}
public void StartGame()
{
GameLoopManager.Instance.StartNewGame();
}
public void SelectLevel()
{
SwitchToLevelTab();
}
private void SwitchToLevelTab()
{
sceneSelection.ShowSceneSelection(GameLoopManager.Instance.totalSceneSos);
}
private void SwitchToStartTab()
{
startTab.SetActive(true);
levelTab.SetActive(false);
}
public void QuitGame()
{
Application.Quit();
}
public void HideStartMenu()
{
gameObject.SetActive(false);
}
}
}