using System.Collections; using UnityEngine; using UnityEngine.UI; public class UI_MaskPanel : BasePanel { /// /// 淡入淡出速度0.5/s /// public float fadeInSpeed = 0.5f; // 淡入速度 /// /// 初始化 /// public void Init() { FadeInAndOut(E_FadeInAndOut.FadeIn); } /// /// 淡入/出 /// /// public void FadeInAndOut(E_FadeInAndOut type) { switch (type) { case E_FadeInAndOut.FadeIn: StartCoroutine(FadeInAsync()); break; case E_FadeInAndOut.FadeOut: StartCoroutine(FadeOutAsync()); break; } } /// /// 隐藏蒙版 /// private void HideMask() { FadeInAndOut(E_FadeInAndOut.FadeOut); } /// /// 淡入 /// /// private IEnumerator FadeInAsync() { // 淡入 float alpha = 0.0f; while (alpha < 1.0f) { alpha += fadeInSpeed * Time.deltaTime; alpha = Mathf.Clamp(alpha,0,1); GetControl("Mask").color = new Color(0, 0, 0, alpha); yield return null; } } /// /// 淡出 /// /// private IEnumerator FadeOutAsync() { // 淡入 float alpha = 1.0f; while (alpha > 0.0f) { alpha -= fadeInSpeed * Time.deltaTime; alpha = Mathf .Clamp(alpha,0,1); GetControl("Mask").color = new Color(0, 0, 0, alpha); yield return null; } UIManager.Instance.HidePanel(); } /// /// 显示 /// public override void ShowMe() { #if UNITY_EDITOR EventCenter.Instance.AddEventListener(Enum_EventType.HideMask, HideMask); #else GameManager.EventMgr.AddEventListener(Enum_EventType.HideMask, HideMask); #endif } /// /// 隐藏面板 /// public override void HideMe() { #if UNITY_EDITOR EventCenter.Instance.RemoveEventListener(Enum_EventType.HideMask, HideMask); #else GameManager.EventMgr.RemoveEventListener(Enum_EventType.HideMask, HideMask); #endif } }