public void OpenView(int viewName, object data = null, UILayers layer = UILayers.First) { ViewModuleData _viewModuleData = null; if (m_viewModuleDatas.TryGetValue(viewName, out _viewModuleData)) { if (_viewModuleData.m_gameObject == null) { _viewModuleData.m_gameObject = _viewModuleData.m_viewModule.OnCreate(); } GameObject _prefab = GetGameObjectByUILayers(layer); if (_prefab != null) { RectTransform trans = (RectTransform)_viewModuleData.m_gameObject.transform; trans.SetParent(_prefab.transform); trans.sizeDelta = Vector3.zero; trans.localScale = Vector3.one; trans.localPosition = Vector3.zero; trans.localRotation = Quaternion.identity; _viewModuleData.m_gameObject.SetActive(true); trans.SetAsLastSibling(); _viewModuleData.m_uiLayers = layer; _viewModuleData.m_viewModule.OnOpen(data); _viewModuleData.m_viewModule.RegisterEvents(m_eventSystemManager); _viewModuleData.m_isOpened = true; } else { Debug.LogError("layer gameObject is null"); } } }
public void UnRegisterViewModule(ViewModuleData viewModuleDatas) { if (viewModuleDatas != null && viewModuleDatas.m_viewModule != null) { m_viewModuleDatas.Remove(viewModuleDatas.m_viewModule.GetName()); } }
/// <summary> /// Registers the view module. /// </summary> /// <param name="view">View.</param> /// <param name="viewLayer">View layer.</param> /// <param name="isMutex">互斥面板类型,默认不在任何互斥面板组里</param> public void RegisterViewModule(ViewModuleData viewModuleDatas) { if (viewModuleDatas != null && viewModuleDatas.m_viewModule != null) { m_viewModuleDatas[viewModuleDatas.m_viewModule.GetName()] = viewModuleDatas; } }
public T GetViewModule <T>(int viewName) where T : IViewModule { T _t = default(T); ViewModuleData _viewModuleData = null; if (m_viewModuleDatas.TryGetValue(viewName, out _viewModuleData)) { _t = (T)_viewModuleData.m_viewModule; } return(_t); }
public bool IsOpened(int viewName) { bool _isOpened = false; ViewModuleData _viewModuleData = null; if (m_viewModuleDatas.TryGetValue(viewName, out _viewModuleData)) { _isOpened = _viewModuleData.m_isOpened; } return(_isOpened); }
public void CloseView(int viewName) { ViewModuleData _viewModuleData = null; if (m_viewModuleDatas.TryGetValue(viewName, out _viewModuleData)) { _viewModuleData.m_viewModule.UnRegisterEvents(m_eventSystemManager); _viewModuleData.m_viewModule.OnClose(); _viewModuleData.m_gameObject.SetActive(false); _viewModuleData.m_isOpened = false; } }