需求:为了方便UI的管理,编写一个管理类,管理所有UI的加载、隐藏或销魂,每个UI都继承自一个UIWindow类,存放在Resource的指定目录下,通过UIManager进行管理。每个继承自UIWindow的UI天然有UI的打开关闭等基本功能。
UIWindow
using UnityEngine;
public abstract class UIWindow : MonoBehaviour
{
public delegate void CloseHandler(UIWindow sender, WindowResult result);
public event CloseHandler OnClose;
public UIWindowType WindowType= UIWindowType.Page;
public virtual System.Type Type {
get {
return this.GetType(); } }
public GameObject Root;
public enum WindowResult
{
None = 0,
Yes,
No,
}
public void Close(WindowResult result = WindowResult.None)
{
UIManager.Instance.Close(this.Type);
if (this.OnClose != null)
this.OnClose(this, result);
this.OnClose = null;
}
publ