using UnityEngine; namespace Code.UI { public class UIService : IUIService { private UIElement[] _uiPanelsPrefabs; private Canvas _canvas; public UIElement CurrentPanel { get; private set; } public LoadingPanel LoadingScreen { get; private set; } public UIService(UIElement[] uiPanelsPrefabs, Canvas canvas) { _canvas = Object.Instantiate(canvas); Object.DontDestroyOnLoad(_canvas); _uiPanelsPrefabs = uiPanelsPrefabs; LoadingScreen = (LoadingPanel)Object.Instantiate(_uiPanelsPrefabs[(int)UIPanel.Loading], _canvas.transform); } public void EnablePanel() => CurrentPanel.gameObject.SetActive(true); public void DisablePanel() => CurrentPanel.gameObject.SetActive(false); public void SwitchPanelTo(UIPanel uiPanel) { if (CurrentPanel.gameObject != null) Object.Destroy(CurrentPanel.gameObject); CurrentPanel = Object.Instantiate(_uiPanelsPrefabs[(int)uiPanel], _canvas.transform); } } }