33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|
|
} |