单例模式管理 UI

UImag1 作为全局唯一的管理类,避免混乱:

1
2
3

private static UImag1 instance = new UImag1();
public static UImag1 Instance => instance;

动态加载 UI 面板

通过 ShowPanel 方法加载 Prefab,并缓存到字典中,减少重复实例化:

1
2
3

GameObject UIgameobj = GameObject.Instantiate(Resources.Load<GameObject>("UI/" + filename));
UIgameobj.transform.SetParent(canvastran, false);

UI 生命周期管理

BasePanel 类定义了 Init、ShowMe 和 HideMe 方法,子类(如 LoginPanel)通过重写实现自定义行为。
资源释放
Hideme 方法支持淡出动画并销毁实例,释放内存:

1
2

dicpanel[Ui_name].HideMe(() => { GameObject.Destroy(dicpanel[Ui_name].gameObject); });