35 lines
818 B
C#
35 lines
818 B
C#
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// UI 基类:统一生命周期、显示/隐藏、入场出场动画钩子
|
|
/// </summary>
|
|
public abstract class UIBase : MonoBehaviour
|
|
{
|
|
public UIPanel PanelType { get; private set; }
|
|
|
|
// 初始化,由 UIManager 赋值
|
|
public void Init(UIPanel type)
|
|
{
|
|
PanelType = type;
|
|
OnInit();
|
|
}
|
|
|
|
// 生命周期钩子
|
|
protected virtual void OnInit() { }
|
|
protected virtual void OnShow(object args = null) { }
|
|
protected virtual void OnHide() { }
|
|
|
|
public virtual void Show(object args = null)
|
|
{
|
|
gameObject.SetActive(true);
|
|
transform.SetAsLastSibling(); // 每次激活都放到最上层
|
|
OnShow(args);
|
|
}
|
|
|
|
public virtual void Hide()
|
|
{
|
|
OnHide();
|
|
gameObject.SetActive(false);
|
|
}
|
|
} |