一、UI基类
一般情况下都是用Panel做容器来放各种控件的,一个Panle相当一个UI小界面,然后做成Prefab进行加载,所有界面都有载入载出功能,有的可能还有等待和恢复的,适合建立一个UI基类,然后各个子界面继承。
public abstract class WUIBasePanel : MonoBehaviour
{
public abstract void OnEnter();
public abstract void OnExit();
public abstract void OnPause();
public abstract void OnResume();
}
二、UI子类
每个UI子界面都继承基类,然后实现各个方法,加载的时候可以在OnEnter()方法做一些显示动画或一些状态的改变等,OnExit()里可以做消失动画和一些关闭界面需要做的操作等。为了方便统一启用和禁用管理都添加CanvasGroup组件,也可以用来做隐藏和显示。
public class WUIPanel1 : WUIBasePanel
{
private CanvasGroup canvasGroup;
public override void OnEnter()
{
if (canvasGroup == null)
{
canvasGroup = GetComponent<CanvasGroup>();
}
canvasGroup.blocksRaycasts = true;
gameObject.SetActive(true);
}
public o