using System; using System.Collections.Generic; using Facebook.Yoga; using UnityEngine; using UnityEngine.UI; using Vocaluxe.UI; using Vocaluxe.UI.AbstractElements; using Vocaluxe.UI.BasicElements.Button; using Vocaluxe.UI.BasicElements.Text; using Vocaluxe.UI.Screens; public class ScreenHandler : MonoBehaviour { private CUiConnector _connector; private Dictionary _screens = new Dictionary(); private EUiScreenType _currentScreen = EUiScreenType.None; // Use this for initialization void Start () { useGUILayout = false; RectTransform rt = (RectTransform)transform; _connector = new CUiConnector(Convert.ToInt32(rt.rect.width), Convert.ToInt32(rt.rect.height)); foreach (var screenInfo in _connector.GetAllScreens()) { _CreateScreen(screenInfo); } } // Update is called once per frame void Update () { if (_currentScreen == DummyClass.CurrentScreen) return; ChangeScreen(_currentScreen, DummyClass.CurrentScreen); } private void ChangeScreen(EUiScreenType currentScreen, EUiScreenType targetScreen) { DeactivateScreen(currentScreen); ActivateScreen(targetScreen); } private void ActivateScreen(EUiScreenType screen) { if(screen == EUiScreenType.None) return; _screens[screen].SetActive(true); } private void DeactivateScreen(EUiScreenType screen) { if (screen == EUiScreenType.None) return; _screens[screen].SetActive(false); _currentScreen = DummyClass.CurrentScreen; } private void _CreateScreen(KeyValuePair screenNameAndInfo) { GameObject newScreen = CreateElement(screenNameAndInfo.Value, screenNameAndInfo.Key.ToString()); _screens.Add(screenNameAndInfo.Key, newScreen); newScreen.GetComponent().SetParent(this.transform); newScreen.SetActive(false); } private GameObject CreateElement(CUiScreen screenInfo, string screenName = "") { return CreateElementBase(screenInfo, screenName); } private GameObject CreateElement(CUiElementButton buttonInfo) { var button = CreateElementBase(buttonInfo); button.AddComponent