/
GeekNerd
/
ServerModelingProject
Обзор
Документация
Войти
/
GeekNerd
/
ServerModelingProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Assets/Scripts/UI_Logic/MainMenuPart/MenuServices/MenuService.cs
74 строки
3 KB
Gorney-Alex
Init
30 май 2026, 19:05
30 май 2026, 19:05
3cdcc49
Код
Авторство
О чём код?
using System.Collections.Generic; using UnityEngine; namespace UI_Logic.MenuServices { public class MenuService { private readonly MainMenuController _mainMenuController; private readonly ContinueMenuController _continueMenuController; private readonly SettingsMenuController _settingsMenuController; private readonly ServerSettingsMenuController _serverSettingsMenuController; private readonly NewProjectMenuController _newProjectMenuController; private readonly GeneratorsSettingsMenuController _generatorsSettingsMenuController; private readonly GlobalSettingsMenuController _globalSettingsMenuController; private readonly Stack<BaseMenuController> _history; private BaseMenuController _currentController; public MenuService( MainMenuController mainMenuController, SettingsMenuController settingsMenuController, ServerSettingsMenuController serverSettingsMenuController, NewProjectMenuController newProjectMenuController, ContinueMenuController continueMenuController, GeneratorsSettingsMenuController generatorsSettingsMenuController, GlobalSettingsMenuController globalSettingsMenuController ) { _mainMenuController = mainMenuController; _settingsMenuController = settingsMenuController; _serverSettingsMenuController = serverSettingsMenuController; _newProjectMenuController = newProjectMenuController; _continueMenuController = continueMenuController; _generatorsSettingsMenuController = generatorsSettingsMenuController; _globalSettingsMenuController = globalSettingsMenuController; _history = new Stack<BaseMenuController>(); _currentController = _mainMenuController; _mainMenuController.Open(); } public void GoBack() { if (!CanGoBack) return; _currentController?.Close(); _currentController = _history.Pop(); _currentController.Open(); } public void ShowMainMenu() => NavigateTo(_mainMenuController); public void ShowNewProjectMenu() => NavigateTo(_newProjectMenuController); public void ShowSettingsMenu() => NavigateTo(_settingsMenuController); public void ShowServerSettingsMenu() => NavigateTo(_serverSettingsMenuController); public void ShowContinueMenu() => NavigateTo(_continueMenuController); public void ShowGeneratorsSettingsMenu() => NavigateTo(_generatorsSettingsMenuController); public void ShowGlobalSettingsMenu() => NavigateTo(_globalSettingsMenuController); private void NavigateTo(BaseMenuController next) { if (_currentController == next) return; _currentController?.Close(); _history.Push(_currentController); _currentController = next; _currentController.Open(); Debug.Log(_history.Count.ToString()); } private bool CanGoBack => _history.Count > 0; } }