Files
jelito/Assets/jelycho/Code/MainMenu/MainMenuController.cs
2025-07-16 23:04:04 +02:00

49 lines
2.0 KiB
C#
Executable File

using RebootKit.Engine.Main;
using UnityEngine;
using UnityEngine.UIElements;
namespace RebootReality.jelycho.MainMenu {
public class MainMenuController : MonoBehaviour {
const string k_ButtonHost = "rr-menu__main-btn-host";
const string k_ButtonJoinLocalHost = "rr-menu__main-btn-join-localhost";
const string k_ButtonSettings = "rr-menu__main-btn-settings";
const string k_ButtonQuit = "rr-menu__main-btn-quit";
const string k_PanelMain = "rr-menu__panel-main";
const string k_PanelSettings = "rr-menu__panel-settings";
[SerializeField] UIDocument m_Document;
void OnEnable() {
VisualElement root = m_Document.rootVisualElement;
Button hostButton = root.Q<Button>(k_ButtonHost);
Button joinLocalhostButton = root.Q<Button>(k_ButtonJoinLocalHost);
Button settingsButton = root.Q<Button>(k_ButtonSettings);
Button quitButton = root.Q<Button>(k_ButtonQuit);
hostButton.RegisterCallback<ClickEvent>(e => {
RR.StartHost();
RR.SetServerWorld("dev");
});
joinLocalhostButton.RegisterCallback<ClickEvent>(e => {
RR.Connect();
});
settingsButton.RegisterCallback<ClickEvent>(e => OpenSettings());
quitButton.RegisterCallback<ClickEvent>(e => Application.Quit());
OpenMain();
}
void OpenMain() {
m_Document.rootVisualElement.Q<VisualElement>(k_PanelMain).style.display = DisplayStyle.Flex;
m_Document.rootVisualElement.Q<VisualElement>(k_PanelSettings).style.display = DisplayStyle.None;
}
void OpenSettings() {
m_Document.rootVisualElement.Q<VisualElement>(k_PanelMain).style.display = DisplayStyle.None;
m_Document.rootVisualElement.Q<VisualElement>(k_PanelSettings).style.display = DisplayStyle.Flex;
}
}
}