Update
This commit is contained in:
@@ -49,12 +49,14 @@ namespace Hallucinate.UI
|
||||
[SerializeField] private VisualTreeAsset profileTemplate;
|
||||
[SerializeField] private VisualTreeAsset settingsTemplate;
|
||||
[SerializeField] private VisualTreeAsset hudTemplate;
|
||||
[SerializeField] private VisualTreeAsset pauseMenuTemplate;
|
||||
[SerializeField] private StyleSheet globalStyleSheet;
|
||||
|
||||
private LoginController _loginController;
|
||||
private MainMenuController _mainMenuController;
|
||||
private LobbyController _lobbyController;
|
||||
private SettingsController _settingsController;
|
||||
private PauseMenuController _pauseMenuController;
|
||||
|
||||
// Osu Trail Pooling
|
||||
private const int MAX_TRAIL_PARTICLES = 60;
|
||||
@@ -65,6 +67,9 @@ namespace Hallucinate.UI
|
||||
private bool _isSettingsOpen = false;
|
||||
public bool IsSettingsOpen => _isSettingsOpen;
|
||||
|
||||
private bool _isPauseMenuOpen = false;
|
||||
public bool IsPauseMenuOpen => _isPauseMenuOpen;
|
||||
|
||||
private const string UI_SCALE_KEY = "UIScale";
|
||||
|
||||
#if UNITY_EDITOR
|
||||
@@ -242,7 +247,43 @@ namespace Hallucinate.UI
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleCancel() { if (_isSettingsOpen) ToggleSettings(); }
|
||||
private void HandleCancel()
|
||||
{
|
||||
if (_isSettingsOpen) ToggleSettings();
|
||||
else if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "Main Scene")
|
||||
{
|
||||
TogglePauseMenu();
|
||||
}
|
||||
}
|
||||
|
||||
public async void TogglePauseMenu()
|
||||
{
|
||||
if (_pauseMenuController == null) return;
|
||||
if (!_isPauseMenuOpen)
|
||||
{
|
||||
_isPauseMenuOpen = true;
|
||||
_pauseMenuController.Root.BringToFront();
|
||||
if (_cursorLayer != null) _cursorLayer.BringToFront();
|
||||
|
||||
// Unlock cursor when menu is open
|
||||
UnityEngine.Cursor.lockState = CursorLockMode.None;
|
||||
UnityEngine.Cursor.visible = false;
|
||||
|
||||
await _pauseMenuController.PlayTransitionIn();
|
||||
}
|
||||
else
|
||||
{
|
||||
_isPauseMenuOpen = false;
|
||||
|
||||
// Re-lock cursor when menu is closed
|
||||
if (!_isSettingsOpen)
|
||||
{
|
||||
UnityEngine.Cursor.lockState = CursorLockMode.Locked;
|
||||
}
|
||||
|
||||
await _pauseMenuController.PlayTransitionOut();
|
||||
}
|
||||
}
|
||||
|
||||
public async void ToggleSettings()
|
||||
{
|
||||
@@ -354,6 +395,7 @@ namespace Hallucinate.UI
|
||||
RegisterController<ProfileController>(profileTemplate);
|
||||
_settingsController = RegisterController<SettingsController>(settingsTemplate);
|
||||
RegisterController<HUDController>(hudTemplate);
|
||||
_pauseMenuController = RegisterController<PauseMenuController>(pauseMenuTemplate);
|
||||
_loginController = RegisterController<LoginController>(loginTemplate);
|
||||
}
|
||||
catch (Exception e) { Debug.LogError($"[UIManager] Failed to initialize controllers: {e}"); }
|
||||
|
||||
Reference in New Issue
Block a user