一、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 override void OnExit()
{
canvasGroup.blocksRaycasts = false;
gameOb

本文介绍了Unity 3D中UI管理框架的设计与实现,包括UI基类的创建,用于承载控件的Panel及Prefab的使用;UI子类的定制,通过OnEnter和OnExit方法控制显示和关闭动画;UI管理类的实现,采用单例模式,利用Dictionary和Stack管理界面的加载与关闭。文章最后展示了实际应用效果并提供了源码下载链接。
最低0.47元/天 解锁文章
2770

被折叠的 条评论
为什么被折叠?



