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
}
}