Couple More menu Items

This commit is contained in:
Walter
2026-01-31 10:43:00 -06:00
parent 8588282498
commit 5ffc07fe4d
6 changed files with 1456 additions and 18 deletions
+26 -13
View File
@@ -1,12 +1,14 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UIElements;
public class MainMenuController : MonoBehaviour
{
[SerializeField] private string startSceneName = "Level1";
[SerializeField] private List<string> buttonNames = new List<string> { "Start", "Experiment", "Level2" };
[SerializeField] private List<string> sceneNames = new List<string> { "Level1", "Experiment", "Level2" };
private UIDocument uiDocument;
private Button startButton;
private List<Button> buttons;
private void OnEnable()
{
@@ -22,29 +24,40 @@ public class MainMenuController : MonoBehaviour
return;
}
startButton = root.Q<Button>("Start");
if (startButton == null)
buttons = new List<Button> { new Button(), new Button(), new Button() };
for (int i = 0; i < buttons.Count; i++)
{
return;
}
int buttonIndex = i;
startButton.clicked += HandleStartClicked;
buttons[i] = root.Q<Button>(buttonNames[i]);
if (buttons[i] == null)
{
continue;
}
buttons[i].clicked += () => HandleStartClicked(sceneNames[buttonIndex]);
}
}
private void OnDisable()
{
if (startButton != null)
for (int i = 0; i < buttons.Count; i++)
{
startButton.clicked -= HandleStartClicked;
startButton = null;
if (buttons[i] == null)
{
continue;
}
buttons[i].clicked -= () => HandleStartClicked(buttonNames[i]);
}
}
private void HandleStartClicked()
private void HandleStartClicked(string sceneName)
{
if (!string.IsNullOrWhiteSpace(startSceneName))
if (!string.IsNullOrWhiteSpace(sceneName))
{
SceneManager.LoadScene(startSceneName);
SceneManager.LoadScene(sceneName);
}
}
}