多轮审查和修复
This commit is contained in:
@@ -24,23 +24,20 @@ namespace BaseGames.UI
|
||||
[SerializeField] private VoidEventChannelSO _onMapOpen;
|
||||
|
||||
private readonly Stack<GameObject> _panelStack = new();
|
||||
private readonly CompositeDisposable _subs = new();
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
if (_onGameStateChanged != null) _onGameStateChanged.OnEventRaised += HandleGameStateChanged;
|
||||
if (_onPauseRequested != null) _onPauseRequested.OnEventRaised += TogglePause;
|
||||
if (_onFastTravelOpen != null) _onFastTravelOpen.OnEventRaised += OpenMap;
|
||||
if (_onShopOpen != null) _onShopOpen.OnEventRaised += OpenShop;
|
||||
if (_onMapOpen != null) _onMapOpen.OnEventRaised += OpenMap;
|
||||
_onGameStateChanged?.Subscribe(HandleGameStateChanged).AddTo(_subs);
|
||||
_onPauseRequested?.Subscribe(TogglePause).AddTo(_subs);
|
||||
_onFastTravelOpen?.Subscribe(OpenMap).AddTo(_subs);
|
||||
_onShopOpen?.Subscribe(OpenShop).AddTo(_subs);
|
||||
_onMapOpen?.Subscribe(OpenMap).AddTo(_subs);
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
if (_onGameStateChanged != null) _onGameStateChanged.OnEventRaised -= HandleGameStateChanged;
|
||||
if (_onPauseRequested != null) _onPauseRequested.OnEventRaised -= TogglePause;
|
||||
if (_onFastTravelOpen != null) _onFastTravelOpen.OnEventRaised -= OpenMap;
|
||||
if (_onShopOpen != null) _onShopOpen.OnEventRaised -= OpenShop;
|
||||
if (_onMapOpen != null) _onMapOpen.OnEventRaised -= OpenMap;
|
||||
_subs.Clear();
|
||||
}
|
||||
|
||||
private void HandleGameStateChanged(GameStateId state)
|
||||
@@ -74,8 +71,14 @@ namespace BaseGames.UI
|
||||
if (_panelStack.Count > 0) _panelStack.Peek().SetActive(true);
|
||||
}
|
||||
|
||||
private void TogglePause() => OpenPanel(_pauseMenuRoot);
|
||||
private void OpenShop(string _) => OpenPanel(_shopRoot);
|
||||
private void OpenMap() => OpenPanel(_mapRoot);
|
||||
private void TogglePause()
|
||||
{
|
||||
if (_pauseMenuRoot != null && _pauseMenuRoot.activeSelf)
|
||||
CloseTopPanel();
|
||||
else
|
||||
OpenPanel(_pauseMenuRoot);
|
||||
}
|
||||
private void OpenShop(string _) => OpenPanel(_shopRoot);
|
||||
private void OpenMap() => OpenPanel(_mapRoot);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user