public static void Init() { if (!isInit) { isInit = true; GameObject instance = GameObject.Find("UIManager"); if (instance == null) { instance = GameObjectManager.CreateGameObject("UIManager"); } UIManagerGo = instance; s_UILayerManager = instance.GetComponent <UILayerManager>(); s_UIAnimManager = instance.GetComponent <UIAnimManager>(); s_UIStackManager = instance.GetComponent <UIStackManager>(); s_EventSystem = instance.GetComponentInChildren <EventSystem>(); if (Application.isPlaying) { DontDestroyOnLoad(instance); } } }
public static UIWindowBase CreateUIWindow(string UIName) { Debug.Log("CreateUIWindow " + UIName); GameObject UItmp = GameObjectManager.CreateGameObjectByPool(UIName, UIManagerGo); UIWindowBase UIWIndowBase = UItmp.GetComponent <UIWindowBase>(); UISystemEvent.Dispatch(UIWIndowBase, UIEvent.OnInit); //派发OnInit事件 UIWIndowBase.windowStatus = UIWindowBase.WindowStatus.Create; try { UIWIndowBase.InitWindow(GetUIID(UIName)); } catch (Exception e) { Debug.LogError(UIName + "OnInit Exception: " + e.ToString()); } AddHideUI(UIWIndowBase); UILayerManager.SetLayer(UIWIndowBase); //设置层级 return(UIWIndowBase); }
/// <summary> /// 打开UI /// </summary> /// <param name="UIName">UI名</param> /// <param name="callback">动画播放完毕回调</param> /// <param name="objs">回调传参</param>` /// <returns>返回打开的UI</returns> public static UIWindowBase OpenUIWindow(string UIName, UICallBack callback = null, params object[] objs) { UIWindowBase UIbase = GetHideUI(UIName); if (UIbase == null) { UIbase = CreateUIWindow(UIName); } RemoveHideUI(UIbase); AddUI(UIbase); UIStackManager.OnUIOpen(UIbase); UILayerManager.SetLayer(UIbase); //设置层级 UIbase.windowStatus = UIWindowBase.WindowStatus.OpenAnim; UISystemEvent.Dispatch(UIbase, UIEvent.OnOpen); //派发OnOpen事件 try { UIbase.OnOpen(); } catch (Exception e) { Debug.LogError(UIName + " OnOpen Exception: " + e.ToString()); } UISystemEvent.Dispatch(UIbase, UIEvent.OnOpened); //派发OnOpened事件 UIAnimManager.StartEnterAnim(UIbase, callback, objs); //播放动画 return(UIbase); }
public static void CreatUI(string l_UIWindowName, UIType l_UIType, UILayerManager l_UILayerManager, bool l_isAutoCreatePrefab) { GameObject l_uiGo = new GameObject(l_UIWindowName); Type type = EditorTool.GetType(l_UIWindowName); UIWindowBase l_uiBaseTmp = l_uiGo.AddComponent(type) as UIWindowBase; l_uiGo.layer = LayerMask.NameToLayer("UI"); l_uiBaseTmp.m_UIType = l_UIType; l_uiGo.AddComponent <Canvas>(); l_uiGo.AddComponent <GraphicRaycaster>(); RectTransform l_ui = l_uiGo.GetComponent <RectTransform>(); l_ui.sizeDelta = Vector2.zero; l_ui.anchorMin = Vector2.zero; l_ui.anchorMax = Vector2.one; GameObject l_BgGo = new GameObject("BG"); l_BgGo.layer = LayerMask.NameToLayer("UI"); RectTransform l_Bg = l_BgGo.AddComponent <RectTransform>(); l_Bg.SetParent(l_ui); l_Bg.sizeDelta = Vector2.zero; l_Bg.anchorMin = Vector2.zero; l_Bg.anchorMax = Vector2.one; GameObject l_rootGo = new GameObject("root"); l_rootGo.layer = LayerMask.NameToLayer("UI"); RectTransform l_root = l_rootGo.AddComponent <RectTransform>(); l_root.SetParent(l_ui); l_root.sizeDelta = Vector2.zero; l_root.anchorMin = Vector2.zero; l_root.anchorMax = Vector2.one; l_uiBaseTmp.m_bgMask = l_BgGo; l_uiBaseTmp.m_uiRoot = l_rootGo; if (l_UILayerManager) { l_UILayerManager.SetLayer(l_uiBaseTmp); } if (l_isAutoCreatePrefab) { string Path = "Resources/UI/" + l_UIWindowName + "/" + l_UIWindowName + ".prefab"; FileTool.CreatFilePath(Application.dataPath + "/" + Path); PrefabUtility.CreatePrefab("Assets/" + Path, l_uiGo, ReplacePrefabOptions.ConnectToPrefab); } ProjectWindowUtil.ShowCreatedAsset(l_uiGo); }
public static void CreatUIbyLua(string UIWindowName, UIType UIType, UILayerManager UILayerManager, bool isAutoCreatePrefab) { GameObject uiGo = new GameObject(UIWindowName); UIWindowLuaHelper uiBaseTmp = uiGo.AddComponent <UIWindowLuaHelper>(); uiGo.layer = LayerMask.NameToLayer("UI"); uiBaseTmp.m_UIType = UIType; uiGo.AddComponent <Canvas>(); uiGo.AddComponent <GraphicRaycaster>(); RectTransform ui = uiGo.GetComponent <RectTransform>(); ui.sizeDelta = Vector2.zero; ui.anchorMin = Vector2.zero; ui.anchorMax = Vector2.one; GameObject BgGo = new GameObject("BG"); BgGo.layer = LayerMask.NameToLayer("UI"); RectTransform Bg = BgGo.AddComponent <RectTransform>(); Bg.SetParent(ui); Bg.sizeDelta = Vector2.zero; Bg.anchorMin = Vector2.zero; Bg.anchorMax = Vector2.one; GameObject rootGo = new GameObject("root"); rootGo.layer = LayerMask.NameToLayer("UI"); RectTransform root = rootGo.AddComponent <RectTransform>(); root.SetParent(ui); root.sizeDelta = Vector2.zero; root.anchorMin = Vector2.zero; root.anchorMax = Vector2.one; uiBaseTmp.m_bgMask = BgGo; uiBaseTmp.m_uiRoot = rootGo; if (UILayerManager) { UILayerManager.SetLayer(uiBaseTmp); } if (isAutoCreatePrefab) { string Path = "Resources/UI/" + UIWindowName + "/" + UIWindowName + ".prefab"; FileTool.CreatFilePath(Application.dataPath + "/" + Path); PrefabUtility.CreatePrefab("Assets/" + Path, uiGo, ReplacePrefabOptions.ConnectToPrefab); } ProjectWindowUtil.ShowCreatedAsset(uiGo); }
static void SetUIManager(GameObject instance) { s_UIManagerGo = instance; s_UILayerManager = instance.GetComponent <UILayerManager>(); s_UIAnimManager = instance.GetComponent <UIAnimManager>(); s_UIcamera = instance.GetComponentInChildren <Camera>(); DontDestroyOnLoad(instance); }
public static void Init() { GameObject l_instance = GameObjectManager.CreatGameObject("UIManager"); s_instance = l_instance.GetComponent <UIManager>(); s_UILayerManager = l_instance.GetComponent <UILayerManager>(); s_UIAnimManager = l_instance.GetComponent <UIAnimManager>(); s_UIcamera = l_instance.GetComponentInChildren <Camera>(); DontDestroyOnLoad(l_instance); }
void OnEnable() { EditorGUIStyleData.Init(); GameObject uiManager = GameObject.Find("UIManager"); if (uiManager) { m_UILayerManager = uiManager.GetComponent <UILayerManager>(); } FindAllUI(); }
static int set_s_UILayerManager(IntPtr L) { try { UILayerManager arg0 = (UILayerManager)ToLua.CheckUnityObject(L, 2, typeof(UILayerManager)); UIManager.s_UILayerManager = arg0; return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static public Dictionary <string, List <UIWindowBase> > s_hideUIs = new Dictionary <string, List <UIWindowBase> >(); //隐藏的UI #region 初始化 public static void Init() { GameObject instance = GameObject.Find("UIManager"); if (instance == null) { instance = GameObjectManager.CreateGameObject("UIManager"); } s_UIManagerGo = instance; s_UILayerManager = instance.GetComponent <UILayerManager>(); s_UIAnimManager = instance.GetComponent <UIAnimManager>(); s_UIcamera = instance.GetComponentInChildren <Camera>(); DontDestroyOnLoad(instance); }
public static void Init() { var instance = GameObject.Find("UIManager"); if (instance == null) { instance = GameObjectManager.Instance.CreatePoolObject("UIManager"); } m_instance = instance; m_uiLayerManager = instance.GetComponent <UILayerManager>(); m_uiAnimManager = instance.GetComponent <UIAnimManager>(); m_uiCamera = instance.GetComponentInChildren <Camera>(); DontDestroyOnLoad(instance); }
public IEnumerator UITestWithEnumeratorPasses() { GameObject canvas = LoadManager.Single.LoadAndInstaniate(Path.PREFAB_PATH + ConstValue.CANVAS, null); GameObject base_layer = GameObject.Find("BASIC_UI"); UIManager uiManager = canvas.AddComponent <UIManager> (); UILayerManager _layerManager = canvas.AddComponent <UILayerManager> (); uiManager.AddGetLayerObjectListener(_layerManager.GetLayerObject); uiManager.Show(UiId.MainMenu); yield return(new WaitForSeconds(5)); // uiManager.Show (UiId.StartGame); // yield return new WaitForSeconds (5); // uiManager.Show (UiId.NewGameWarning); // yield return new WaitForSeconds (5); // uiManager.Back(); // yield return new WaitForSeconds (5); Debug.Log("finishShow"); GameObject.Destroy(canvas); }
/// <summary> /// 将一个UI重新放回它原本的UICamera下 /// </summary> /// <param name="ui"></param> /// <param name="cameraKey"></param> public static void ResetUICamera(UIWindowBase ui) { UILayerManager.SetLayer(ui, ui.cameraKey); }
/// <summary> /// 将一个UI移动到另一个UICamera下 /// </summary> /// <param name="ui"></param> /// <param name="cameraKey"></param> public static void ChangeUICamera(UIWindowBase ui, string cameraKey) { UILayerManager.SetLayer(ui, cameraKey); }
public static Camera GetCamera(string CameraKey = null) { var data = UILayerManager.GetUICameraDataByKey(CameraKey); return(data.m_camera); }
public static void CreateUICamera(UIManager UIManager, string key, float cameraDepth, Vector2 referenceResolution, CanvasScaler.ScreenMatchMode MatchMode, bool isOnlyUICamera, bool isVertical) { UILayerManager.UICameraData uICameraData = new UILayerManager.UICameraData(); uICameraData.m_key = key; GameObject UIManagerGo = UIManager.gameObject; GameObject canvas = new GameObject(key); RectTransform canvasRt = canvas.AddComponent <RectTransform>(); canvasRt.SetParent(UIManagerGo.transform); uICameraData.m_root = canvas; //UIcamera GameObject cameraGo = new GameObject("UICamera"); cameraGo.transform.SetParent(canvas.transform); cameraGo.transform.localPosition = new Vector3(0, 0, -1000); Camera camera = cameraGo.AddComponent <Camera>(); camera.cullingMask = LayerMask.GetMask("UI"); camera.orthographic = true; camera.depth = cameraDepth; uICameraData.m_camera = camera; //Canvas Canvas canvasComp = canvas.AddComponent <Canvas>(); canvasComp.renderMode = RenderMode.ScreenSpaceCamera; canvasComp.worldCamera = camera; //UI Raycaster canvas.AddComponent <GraphicRaycaster>(); //CanvasScaler CanvasScaler scaler = canvas.AddComponent <CanvasScaler>(); scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; scaler.referenceResolution = referenceResolution; scaler.screenMatchMode = MatchMode; if (!isOnlyUICamera) { camera.clearFlags = CameraClearFlags.Depth; camera.depth = 1; } else { camera.clearFlags = CameraClearFlags.SolidColor; camera.backgroundColor = Color.black; } if (isVertical) { scaler.matchWidthOrHeight = 1; } else { scaler.matchWidthOrHeight = 0; } //挂载点 GameObject goTmp = null; RectTransform rtTmp = null; UILayerManager UILayerManager = UIManagerGo.GetComponent <UILayerManager>(); goTmp = new GameObject("GameUI"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(canvas.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; uICameraData.m_GameUILayerParent = goTmp.transform; goTmp = new GameObject("Fixed"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(canvas.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; uICameraData.m_FixedLayerParent = goTmp.transform; goTmp = new GameObject("Normal"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(canvas.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; uICameraData.m_NormalLayerParent = goTmp.transform; goTmp = new GameObject("TopBar"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(canvas.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; uICameraData.m_TopbarLayerParent = goTmp.transform; goTmp = new GameObject("PopUp"); goTmp.layer = LayerMask.NameToLayer("UI"); goTmp.transform.SetParent(canvas.transform); goTmp.transform.localScale = Vector3.one; rtTmp = goTmp.AddComponent <RectTransform>(); rtTmp.anchorMax = new Vector2(1, 1); rtTmp.anchorMin = new Vector2(0, 0); rtTmp.anchoredPosition3D = Vector3.zero; rtTmp.sizeDelta = Vector2.zero; uICameraData.m_PopUpLayerParent = goTmp.transform; UILayerManager.UICameraList.Add(uICameraData); //重新保存 ReSaveUIManager(UIManagerGo); }
public static void CreatUI(string UIWindowName, string UIcameraKey, UIType UIType, UILayerManager UILayerManager, bool isAutoCreatePrefab) { GameObject uiGo = new GameObject(UIWindowName); Type type = EditorTool.GetType(UIWindowName); UIWindowBase uiBaseTmp = uiGo.AddComponent(type) as UIWindowBase; uiGo.layer = LayerMask.NameToLayer("UI"); uiBaseTmp.m_UIType = UIType; Canvas canvas = uiGo.AddComponent <Canvas>(); if (EditorExpand.isExistShortLayer(UIType.ToString())) { canvas.overrideSorting = true; canvas.sortingLayerName = UIType.ToString(); } uiGo.AddComponent <GraphicRaycaster>(); RectTransform ui = uiGo.GetComponent <RectTransform>(); ui.sizeDelta = Vector2.zero; ui.anchorMin = Vector2.zero; ui.anchorMax = Vector2.one; GameObject BgGo = new GameObject("BG"); BgGo.layer = LayerMask.NameToLayer("UI"); RectTransform Bg = BgGo.AddComponent <RectTransform>(); Bg.SetParent(ui); Bg.sizeDelta = Vector2.zero; Bg.anchorMin = Vector2.zero; Bg.anchorMax = Vector2.one; GameObject rootGo = new GameObject("root"); rootGo.layer = LayerMask.NameToLayer("UI"); RectTransform root = rootGo.AddComponent <RectTransform>(); root.SetParent(ui); root.sizeDelta = Vector2.zero; root.anchorMin = Vector2.zero; root.anchorMax = Vector2.one; uiBaseTmp.m_bgMask = BgGo; uiBaseTmp.m_uiRoot = rootGo; if (UILayerManager) { UILayerManager.SetLayer(uiBaseTmp); } if (isAutoCreatePrefab) { string Path = "Resources/UI/" + UIWindowName + "/" + UIWindowName + ".prefab"; FileTool.CreatFilePath(Application.dataPath + "/" + Path); PrefabUtility.CreatePrefab("Assets/" + Path, uiGo, ReplacePrefabOptions.ConnectToPrefab); } ProjectWindowUtil.ShowCreatedAsset(uiGo); }
void OnDestroy() { _instance = null; }
public static void CreatUIManager(Vector2 l_referenceResolution, CanvasScaler.ScreenMatchMode l_MatchMode, bool l_isOnlyUICamera, bool l_isVertical) { //UIManager GameObject l_UIManagerGo = new GameObject("UIManager"); l_UIManagerGo.layer = LayerMask.NameToLayer("UI"); //UIManager l_UIManager = l_UIManagerGo.AddComponent<UIManager>(); l_UIManagerGo.AddComponent <UIManager>(); //UIcamera GameObject l_cameraGo = new GameObject("UICamera"); l_cameraGo.transform.SetParent(l_UIManagerGo.transform); l_cameraGo.transform.localPosition = new Vector3(0, 0, -1000); Camera l_camera = l_cameraGo.AddComponent <Camera>(); l_camera.cullingMask = LayerMask.GetMask("UI"); l_camera.orthographic = true; if (!l_isOnlyUICamera) { l_camera.clearFlags = CameraClearFlags.Depth; l_camera.depth = 1; } else { l_camera.clearFlags = CameraClearFlags.SolidColor; l_camera.backgroundColor = Color.black; } //Canvas Canvas canvas = l_UIManagerGo.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceCamera; canvas.worldCamera = l_camera; //UI Raycaster //GraphicRaycaster l_Graphic = l_UIManagerGo.AddComponent<GraphicRaycaster>(); l_UIManagerGo.AddComponent <GraphicRaycaster>(); //CanvasScaler CanvasScaler l_scaler = l_UIManagerGo.AddComponent <CanvasScaler>(); l_scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; l_scaler.referenceResolution = l_referenceResolution; l_scaler.screenMatchMode = l_MatchMode; if (l_isVertical) { l_scaler.matchWidthOrHeight = 1; } else { l_scaler.matchWidthOrHeight = 0; } //挂载点 GameObject l_goTmp = null; RectTransform l_rtTmp = null; UILayerManager l_layerTmp = l_UIManagerGo.GetComponent <UILayerManager>(); l_goTmp = new GameObject("GameUI"); l_goTmp.layer = LayerMask.NameToLayer("UI"); l_goTmp.transform.SetParent(l_UIManagerGo.transform); l_goTmp.transform.localScale = Vector3.one; l_rtTmp = l_goTmp.AddComponent <RectTransform>(); l_rtTmp.anchorMax = new Vector2(1, 1); l_rtTmp.anchorMin = new Vector2(0, 0); l_rtTmp.anchoredPosition3D = Vector3.zero; l_rtTmp.sizeDelta = Vector2.zero; l_layerTmp.m_GameUILayerParent = l_goTmp.transform; l_goTmp = new GameObject("Fixed"); l_goTmp.layer = LayerMask.NameToLayer("UI"); l_goTmp.transform.SetParent(l_UIManagerGo.transform); l_goTmp.transform.localScale = Vector3.one; l_rtTmp = l_goTmp.AddComponent <RectTransform>(); l_rtTmp.anchorMax = new Vector2(1, 1); l_rtTmp.anchorMin = new Vector2(0, 0); l_rtTmp.anchoredPosition3D = Vector3.zero; l_rtTmp.sizeDelta = Vector2.zero; l_layerTmp.m_FixedLayerParent = l_goTmp.transform; l_goTmp = new GameObject("Normal"); l_goTmp.layer = LayerMask.NameToLayer("UI"); l_goTmp.transform.SetParent(l_UIManagerGo.transform); l_goTmp.transform.localScale = Vector3.one; l_rtTmp = l_goTmp.AddComponent <RectTransform>(); l_rtTmp.anchorMax = new Vector2(1, 1); l_rtTmp.anchorMin = new Vector2(0, 0); l_rtTmp.anchoredPosition3D = Vector3.zero; l_rtTmp.sizeDelta = Vector2.zero; l_layerTmp.m_NormalLayerParent = l_goTmp.transform; l_goTmp = new GameObject("TopBar"); l_goTmp.layer = LayerMask.NameToLayer("UI"); l_goTmp.transform.SetParent(l_UIManagerGo.transform); l_goTmp.transform.localScale = Vector3.one; l_rtTmp = l_goTmp.AddComponent <RectTransform>(); l_rtTmp.anchorMax = new Vector2(1, 1); l_rtTmp.anchorMin = new Vector2(0, 0); l_rtTmp.anchoredPosition3D = Vector3.zero; l_rtTmp.sizeDelta = Vector2.zero; l_layerTmp.m_TopbarLayerParent = l_goTmp.transform; l_goTmp = new GameObject("PopUp"); l_goTmp.layer = LayerMask.NameToLayer("UI"); l_goTmp.transform.SetParent(l_UIManagerGo.transform); l_goTmp.transform.localScale = Vector3.one; l_rtTmp = l_goTmp.AddComponent <RectTransform>(); l_rtTmp.anchorMax = new Vector2(1, 1); l_rtTmp.anchorMin = new Vector2(0, 0); l_rtTmp.anchoredPosition3D = Vector3.zero; l_rtTmp.sizeDelta = Vector2.zero; l_layerTmp.m_PopUpLayerParent = l_goTmp.transform; //m_UILayerManager = l_layerTmp; ProjectWindowUtil.ShowCreatedAsset(l_UIManagerGo); string Path = "Resources/UI/UIManager.prefab"; FileTool.CreatFilePath(Application.dataPath + "/" + Path); PrefabUtility.CreatePrefab("Assets/" + Path, l_UIManagerGo, ReplacePrefabOptions.ConnectToPrefab); }
void OnEnable() { EditorGUIStyleData.Init(); GameObject uiManager = GameObject.Find("UIManager"); if(uiManager) { m_UILayerManager = uiManager.GetComponent<UILayerManager>(); } m_styleManager.OnEnable(); m_UItemplate.OnEnable(); FindAllUI(); }