using System; using UnityEngine; public class MenuGameplayTransit : MonoBehaviour { public event Action GameplayOpened; [SerializeField] private Menu _menu; [SerializeField] private GameplayLayoutController _gameplay; [SerializeField] private BackgroundDimmer _backgroundDimmer; public void GotoGameplay() { _backgroundDimmer.ShowGameplay(); _menu.Close(callback: OnMenuClosed); } public void GotoMenu() { _backgroundDimmer.ShowMenu(); _gameplay.Close(callback: OnGameplayClosed); } private void OnGameplayOpened() => GameplayOpened?.Invoke(); private void OnMenuOpened() => ControlsPerformer.Instance.SetControlable(_menu); private void OnMenuClosed() => _gameplay.Open(OnGameplayOpened); private void OnGameplayClosed() => _menu.Open(callback: OnMenuOpened); }