public UIType() { UiFormsType = UIFormsType.Normal; UiFormsShowMode = UIFormShowMode.Normal; UiFormsLucencyType = UIFormLucenyType.Lucency; IsClearStack = false; }
/// <summary> /// 设置遮罩状态 /// </summary> /// <param UIName="goDisplayUIForms">需要显示的UI窗体</param> /// <param UIName="lucenyType">显示透明度属性</param> public void SetMaskWindow(GameObject goDisplayUIForms, UIFormLucenyType lucenyType = UIFormLucenyType.Lucency) { //顶层窗体下移 //goTopPanel.transform.SetAsLastSibling(); //启用遮罩窗体以及设置透明度 switch (lucenyType) { //完全透明,不能穿透 case UIFormLucenyType.Lucency: _GoMaskPanel.SetActive(true); Color newColor1 = new Color(UIConfig.SysUIMaskLucencyColorRGB, UIConfig.SysUIMaskLucencyColorRGB, UIConfig.SysUIMaskLucencyColorRGB, UIConfig.SysUIMaskLucencyColorRGBA); _GoMaskPanel.GetComponent <Image>().color = newColor1; break; //半透明,不能穿透 case UIFormLucenyType.Translucence: _GoMaskPanel.SetActive(true); Color newColor2 = new Color(UIConfig.SysUIMaskTransLucencyColorRGB, UIConfig.SysUIMaskTransLucencyColorRGB, UIConfig.SysUIMaskTransLucencyColorRGB, UIConfig.SysUIMaskTransLucencyColorRGBA); _GoMaskPanel.GetComponent <Image>().color = newColor2; break; //低透明,不能穿透 case UIFormLucenyType.ImPenetrable: _GoMaskPanel.SetActive(true); Color newColor3 = new Color(UIConfig.SysUIMaskImpenetrableColorRGB, UIConfig.SysUIMaskImpenetrableColorRGB, UIConfig.SysUIMaskImpenetrableColorRGB, UIConfig.SysUIMaskImpenetrableColorRGBA); _GoMaskPanel.GetComponent <Image>().color = newColor3; break; //可以穿透 case UIFormLucenyType.Pentrate: if (_GoMaskPanel.activeInHierarchy) { _GoMaskPanel.SetActive(false); } break; default: break; } //遮罩窗体下移 _GoMaskPanel.transform.SetAsLastSibling(); //显示窗体的下移 goDisplayUIForms.transform.SetAsLastSibling(); //增加当前UI摄像机的层深(保证当前摄像机为最前显示) if (_UICamera != null) { _UICamera.depth = _UICamera.depth + 100; //增加层深 } }
/// <summary> /// 设置遮罩状态 /// </summary> /// <param name="goDisplayUIForms">需要显示的UI窗体</param> /// <param name="lucenyType">显示透明度属性</param> public void SetMaskWindow(GameObject goDisplayUIForms, UIFormLucenyType lucenyType = UIFormLucenyType.Lucency) { //顶层窗体下移 _GoTopPanel.transform.SetAsLastSibling(); //启用遮罩窗体以及设置透明度 switch (lucenyType) { //完全透明,不能穿透 case UIFormLucenyType.Lucency: print("完全透明"); _GoMaskPanel.SetActive(true); Color newColor1 = new Color(255 / 255F, 255 / 255F, 255 / 255F, 0F / 255F); _GoMaskPanel.GetComponent <Image>().color = newColor1; break; //半透明,不能穿透 case UIFormLucenyType.Translucence: print("半透明"); _GoMaskPanel.SetActive(true); Color newColor2 = new Color(220 / 255F, 220 / 255F, 220 / 255F, 50 / 255F); _GoMaskPanel.GetComponent <Image>().color = newColor2; break; //低透明,不能穿透 case UIFormLucenyType.ImPenetrable: print("低透明"); _GoMaskPanel.SetActive(true); Color newColor3 = new Color(50 / 255F, 50 / 255F, 50 / 255F, 200F / 255F); _GoMaskPanel.GetComponent <Image>().color = newColor3; break; //可以穿透 case UIFormLucenyType.Pentrate: print("允许穿透"); if (_GoMaskPanel.activeInHierarchy) { _GoMaskPanel.SetActive(false); } break; default: break; } //遮罩窗体下移 _GoMaskPanel.transform.SetAsLastSibling(); //显示窗体的下移 goDisplayUIForms.transform.SetAsLastSibling(); //增加当前UI摄像机的层深(保证当前摄像机为最前显示) if (_UICamera != null) { _UICamera.depth = _UICamera.depth + 100; //增加层深 } }
/// <summary> /// 设置遮罩状态 /// </summary> /// <param name="goDisplayPanel"></param> /// <param name="lucenyType"></param> public void SetMaskWindow(GameObject goDisplayPanel, UIFormLucenyType lucenyType = UIFormLucenyType.Lucency) { //顶层窗体下移 m_TopPanel.transform.SetAsLastSibling(); //启用遮罩窗体以及设置透明度 switch (lucenyType) { //完全透明,不能穿透 case UIFormLucenyType.Lucency: m_MaskPanel.SetActive(true); Color newColor1 = new Color(UIConst.UIMASK_LUCENCY_COLOR_RGB, UIConst.UIMASK_LUCENCY_COLOR_RGB, UIConst.UIMASK_LUCENCY_COLOR_RGB, UIConst.UIMASK_LUCENCY_COLOR_RGB_A); m_MaskPanel.GetComponent <Image>().color = newColor1; break; //半透明,不能穿透 case UIFormLucenyType.Translucence: m_MaskPanel.SetActive(true); Color newColor2 = new Color(UIConst.UIMASK_TRANS_LUCENCY_COLOR_RGB, UIConst.UIMASK_TRANS_LUCENCY_COLOR_RGB, UIConst.UIMASK_TRANS_LUCENCY_COLOR_RGB, UIConst.UIMASK_TRANS_LUCENCY_COLOR_RGB_A); m_MaskPanel.GetComponent <Image>().color = newColor2; break; //低透明,不能穿透 case UIFormLucenyType.ImPenetrable: m_MaskPanel.SetActive(true); Color newColor3 = new Color(UIConst.UIMASK_IMPENETRABLE_COLOR_RGB, UIConst.UIMASK_IMPENETRABLE_COLOR_RGB, UIConst.UIMASK_IMPENETRABLE_COLOR_RGB, UIConst.UIMASK_IMPENETRABLE_COLOR_RGB_A); m_MaskPanel.GetComponent <Image>().color = newColor3; break; //可以穿透 case UIFormLucenyType.Pentrate: if (m_MaskPanel.activeInHierarchy) { m_MaskPanel.SetActive(false); } break; default: break; } //遮罩窗体下移 m_MaskPanel.transform.SetAsLastSibling(); //显示窗体的下移 goDisplayPanel.transform.SetAsLastSibling(); //增加当前UI摄像机的层深(保证当前摄像机为最前显示) if (m_UICamera != null) { m_UICamera.depth = m_UICamera.depth + 100; //增加层深 } }
/// <summary> /// 设置遮罩状态 /// </summary> /// <param name="goDisplayUIForm">需要显示的UI窗体</param> /// <param name="lucenyType">显示窗体透明度属性</param> public void SetMaskForm(GameObject goDisplayUIForm, UIFormLucenyType lucenyType = UIFormLucenyType.Lucency) { // 顶层窗体下移(UGUI特性,面板中最下面,现在越前面) _GoTopPanel.transform.SetAsLastSibling(); // 方法:下移到是本层次中的最后 // 启用遮罩窗体以及设置透明度 switch (lucenyType) { // 完全透明,不能穿透 case UIFormLucenyType.Lucency: _GoMaskPanel.SetActive(true); Color newColor1 = new Color(SysDefine.SYS_UIMASK_LUCENCY_COLOR_RGB, SysDefine.SYS_UIMASK_LUCENCY_COLOR_RGB, SysDefine.SYS_UIMASK_LUCENCY_COLOR_RGB, SysDefine.SYS_UIMASK_LUCENCY_COLOR_RGB_A); _GoMaskPanel.GetComponent <Image>().color = newColor1; break; // 半透明,不能穿透 case UIFormLucenyType.Translucence: _GoMaskPanel.SetActive(true); Color newColor2 = new Color(SysDefine.SYS_UIMASK_TRANS_LUCENCY_COLOR_RGB, SysDefine.SYS_UIMASK_TRANS_LUCENCY_COLOR_RGB, SysDefine.SYS_UIMASK_TRANS_LUCENCY_COLOR_RGB, SysDefine.SYS_UIMASK_TRANS_LUCENCY_COLOR_RGB_A); _GoMaskPanel.GetComponent <Image>().color = newColor2; break; // 低透明,不能穿透 case UIFormLucenyType.ImPenetrable: _GoMaskPanel.SetActive(true); Color newColor3 = new Color(SysDefine.SYS_UIMASK_IMPENETRABLE_COLOR_RGB, SysDefine.SYS_UIMASK_IMPENETRABLE_COLOR_RGB, SysDefine.SYS_UIMASK_IMPENETRABLE_COLOR_RGB, SysDefine.SYS_UIMASK_IMPENETRABLE_COLOR_RGB_A); _GoMaskPanel.GetComponent <Image>().color = newColor3; break; // 完全透明,可以穿透 case UIFormLucenyType.Pentrate: if (_GoMaskPanel.activeInHierarchy) { _GoMaskPanel.SetActive(false); } break; default: break; } // 遮罩窗体下移(UGUI特性,面板中最下面,现在越前面) _GoMaskPanel.transform.SetAsLastSibling(); // 需要显示的窗体下移 goDisplayUIForm.transform.SetAsLastSibling(); // 增加当前UI摄像机的层深(保证当前摄像机为最前显示) if (_UICamera != null) { _UICamera.depth = _OriginalUICameraDepth + SysDefine.SYS_UICAMERA_DEPTH; } }
/// <summary> /// 公共方法:设置遮罩状态 /// </summary> /// <param name="goDisplayUIForm">需要显示的UI窗体</param> /// <param name="lucenyType">显示透明度属性</param> public void SetMaskWindow(GameObject goDisplayUIForm, UIFormLucenyType lucenyType = UIFormLucenyType.Pentrate) { //顶层窗体下移 _GoTopPanel.transform.SetAsLastSibling(); //按照透明度类型,启用遮罩窗体,并设置透明度 //TODO switch (lucenyType) { //TODO为什么不弄个颜色库? case UIFormLucenyType.Lucency: _GoUIMaskPanel.SetActive(true); _GoUIMaskPanel.GetComponent <Image>().color = new Color( SysDefine.UIMASK_LucencyColor_RGB, SysDefine.UIMASK_LucencyColor_RGB, SysDefine.UIMASK_LucencyColor_RGB, SysDefine.UIMASK_LucencyColor_A ); break; case UIFormLucenyType.Translucency: _GoUIMaskPanel.SetActive(true); _GoUIMaskPanel.GetComponent <Image>().color = new Color( SysDefine.UIMASK_TranslucencyColor_RGB, SysDefine.UIMASK_TranslucencyColor_RGB, SysDefine.UIMASK_TranslucencyColor_RGB, SysDefine.UIMASK_TranslucencyColor_A ); break; case UIFormLucenyType.Impenetrable: _GoUIMaskPanel.SetActive(true); _GoUIMaskPanel.GetComponent <Image>().color = new Color( SysDefine.UIMASK_ImpenetrableColor_RGB, SysDefine.UIMASK_ImpenetrableColor_RGB, SysDefine.UIMASK_ImpenetrableColor_RGB, SysDefine.UIMASK_ImpenetrableColor_A ); break; case UIFormLucenyType.Pentrate: if (_GoUIMaskPanel.activeInHierarchy) { _GoUIMaskPanel.SetActive(false); } break; } //遮罩窗体下移 _GoUIMaskPanel.transform.SetAsLastSibling(); //显示窗体下移 goDisplayUIForm.transform.SetAsLastSibling(); //增加当前UI摄像机的层深,保证当前摄像机为最前显示 if (_UICamera != null) { _UICamera.depth += SysDefine.ADD_UICameraDepth; } }
/// <summary> /// 取消遮罩状态 /// </summary> public void CancelMaskWindow(UIFormLucenyType lucenyType) { //顶层窗体上移 _GoTopPanel.transform.SetAsFirstSibling(); //禁用遮罩窗体 if (_GoMaskPanel.activeInHierarchy && lucenyType != UIFormLucenyType.Pentrate) { //隐藏 _GoMaskPanel.SetActive(false); } //恢复当前UI摄像机的层深 if (_UICamera != null) { _UICamera.depth = _OriginalUICameralDepth; //恢复层深 } }
/// <summary> /// 设置遮罩状态 /// </summary> /// <param name="ActiveUI">需要显示的UI窗体</param> /// <param name="type"></param> public void SetMaskWnd(Transform activeUI, UIFormLucenyType type = UIFormLucenyType.Lucency) { //顶层窗体下移 防止多个canvas遮挡 TopPanle.SetAsLastSibling(); //启用遮罩窗体以及设置透明度 float alpha = 0; switch (type) { case UIFormLucenyType.Lucency: MaskPanle.gameObject.SetActive(true); alpha = SysDefine.lucency; break; case UIFormLucenyType.Translucence: MaskPanle.gameObject.SetActive(true); alpha = SysDefine.translucence; break; case UIFormLucenyType.ImPenetrable: MaskPanle.gameObject.SetActive(true); alpha = SysDefine.imPenetrable; break; case UIFormLucenyType.Pentrate: if (MaskPanle.gameObject.activeInHierarchy) { MaskPanle.gameObject.SetActive(false); } break; } MaskPanle.GetComponent <Image>().color = new Color(1, 1, 1, alpha); //遮罩窗体下移 TopPanle.SetAsLastSibling(); //显示窗体的下移 activeUI.SetAsLastSibling(); //增加当前UI摄像机层深(保证当前摄像机为最前显示) if (UICamera != null) { OriginalUICameraDepth = UICamera.depth + 100; } }
/// <summary> /// 设置遮罩状态 /// </summary> /// <param name="uiForm">显示UI</param> /// <param name="lucenyType">透明度属性</param> public void SetMaskWindow(GameObject uiForm, UIFormLucenyType lucenyType = UIFormLucenyType.Lucency) { //顶层窗口下移 _GoTopPanel.transform.SetAsLastSibling(); //启用这招窗体以及设置透明度 _GoMaskPanel.SetActive(true); switch (lucenyType) { //完全透明 不能穿透 case UIFormLucenyType.Lucency: Color newColor = new Color(255 / 255f, 255 / 255f, 255 / 255f, 0); _GoMaskPanel.GetComponent <Image>().color = newColor; break; //低透明 不能穿透 case UIFormLucenyType.ImPenetrable: Color newColor2 = new Color(50 / 255f, 50 / 255f, 50 / 255f, 200 / 255f); _GoMaskPanel.GetComponent <Image>().color = newColor2; break; //穿透 case UIFormLucenyType.Pentrate: _GoMaskPanel.SetActive(false); break; //半透明 不能穿透 case UIFormLucenyType.Translucence: Color newColor3 = new Color(220 / 255f, 220 / 255f, 220 / 255f, 50 / 255f); _GoMaskPanel.GetComponent <Image>().color = newColor3; break; default: break; } //遮罩窗体下移 _GoMaskPanel.transform.SetAsLastSibling(); //显示窗口下移 uiForm.transform.SetAsLastSibling(); //增加UI相机层 _UICamera.depth = _UICamera.depth + 100; }