146 lines
3.0 KiB
C#
146 lines
3.0 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
/// <summary>
|
|
/// 面板基类
|
|
/// </summary>
|
|
public class UIBaseClass : MonoBehaviour
|
|
{
|
|
/// <summary>
|
|
/// 关闭回调
|
|
/// </summary>
|
|
private UnityAction hideCallback;
|
|
|
|
/// <summary>
|
|
/// 节点画布组
|
|
/// </summary>
|
|
private CanvasGroup nodeCG;
|
|
|
|
/// <summary>
|
|
/// 动效动画状态机
|
|
/// </summary>
|
|
protected Animation showHideAnimation;
|
|
|
|
/// <summary>
|
|
/// 动效动画状态机
|
|
/// </summary>
|
|
protected Animator showHideAnimator;
|
|
|
|
protected virtual void Awake()
|
|
{
|
|
Init();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 打开
|
|
/// </summary>
|
|
public virtual void OnShow()
|
|
{
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 关闭
|
|
/// </summary>
|
|
public virtual void OnHide()
|
|
{
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除
|
|
/// </summary>
|
|
public virtual void OnDelete()
|
|
{
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始化
|
|
/// </summary>
|
|
private void Init()
|
|
{
|
|
nodeCG = transform.Find("Node").GetComponent<CanvasGroup>();
|
|
GetComponent<Canvas>().worldCamera=UIManager.Instance.uICamera;
|
|
if (transform.TryGetComponent(out Animation animation))
|
|
{
|
|
this.showHideAnimation = animation;
|
|
}
|
|
if (transform.TryGetComponent(out Animator animator))
|
|
{
|
|
this.showHideAnimator = animator;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 全部失效或开启
|
|
/// </summary>
|
|
public void AllLapseInitiate(bool isAllLapse)
|
|
{
|
|
nodeCG.interactable = isAllLapse;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 关闭自己
|
|
/// </summary>
|
|
protected void HideMe()
|
|
{
|
|
UIManager.Instance.HideUI(this.name);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除自己
|
|
/// </summary>
|
|
protected void DeleteMe()
|
|
{
|
|
UIManager.Instance.DeleteUI(this.name);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 打开面板动画
|
|
/// </summary>
|
|
public virtual void ShowPanelAnimation()
|
|
{
|
|
if (showHideAnimation != null)
|
|
{
|
|
showHideAnimation.Play("ShowUI");
|
|
}
|
|
if(showHideAnimator!=null)
|
|
{
|
|
showHideAnimator.Play("ShowUI");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 关闭面板
|
|
/// </summary>
|
|
/// <param name="hideCall">关闭后干什么事</param>
|
|
public virtual void HidePanel(UnityAction hideCallback)
|
|
{
|
|
this.hideCallback= hideCallback;
|
|
if (showHideAnimation == null&&showHideAnimator==null)
|
|
{
|
|
this.hideCallback?.Invoke();
|
|
}
|
|
else
|
|
{
|
|
if (showHideAnimation != null)
|
|
{
|
|
showHideAnimation.Play("HideUI");
|
|
}
|
|
if(showHideAnimator!=null)
|
|
{
|
|
showHideAnimator.Play("HideUI");
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 关闭回调
|
|
/// </summary>
|
|
public void HideCallback()
|
|
{
|
|
this.hideCallback?.Invoke();
|
|
}
|
|
}
|