public void StartWithGameplay <Result>(ModalMenuInput <Result> i_modalData, IModalGameplay i_gameplay) { Debug.Assert(m_levels.Count == 0); Type t = GetClassType <Result>(); ModalInfo info = new ModalInfo(); info.modalData = i_modalData; info.type = t; info.gameplay = i_gameplay; m_levels.Push(info); }
void Start() { ModalManager manager = ModalManager.hidden_instance; ModalMenuInput <Result> data = manager.ExtractData <Result>(this); if (data == null) { data = DefaultInput(); manager.StartWithGameplay(data, this); } UnityEngine.EventSystems.EventSystem.current.SetSelectedGameObject(m_initialSelectable.gameObject); Initialize(data as Input); m_yield = data.yielder; m_id = data.id; }
void Start() { m_canvas = GetComponent <Canvas>(); ModalManager manager = ModalManager.hidden_instance; ModalMenuInput <Result> data = manager.ExtractData <Result>(); if (data == null) { data = DefaultInput(); } m_canvas.sortingOrder = manager.GetCurrentSortingLayer(); if (UnityEngine.EventSystems.EventSystem.current == null) { GameObject ev = new GameObject("tmp_EventSystem"); ev.AddComponent <UnityEngine.EventSystems.EventSystem>(); } UnityEngine.EventSystems.EventSystem.current.SetSelectedGameObject(m_initialSelectable.gameObject); Initialize(data as Input); m_yield = data.yielder; m_id = data.id; }
public ModalYield <Result> LoadMenu <Result>(ModalMenuInput <Result> i_modalData, string i_menuLevel) { Type t = GetClassType <Result>(); ModalInfo info = new ModalInfo(); info.modalData = i_modalData; info.level = i_menuLevel; info.type = t; info.lastSelectable = UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject.GetComponent <Selectable>(); if (m_levels.Count > 0) { ModalInfo stackedModalGameplay = m_levels.Peek(); if (stackedModalGameplay.gameplay != null) { stackedModalGameplay.gameplay.Suspend(); } } m_levels.Push(info); SceneManager.LoadScene(i_menuLevel, LoadSceneMode.Additive); return(i_modalData.yielder); }