【更新】优化UI文档结构,组合UI开发文档为整体,修正窗口打开方式

This commit is contained in:
Shiliang
2026-05-22 11:21:57 +08:00
parent e4198ddd16
commit 0616dd5cc7
4 changed files with 376 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
# StrayFog 框架 UI窗口开发指南
## 一、UI窗口基础
### 1.1 窗口创建流程
```csharp
[HFAssetBundlePath(enHFLanguageRootFolder.ASSETS_GAME_GAMEHFRESOURCE, "UIWindows/Login/LoginWindow.prefab")]
[HFUIWindowLayer(enHFUICanvasLayer.UIWindow, enHFUIWindowLayer.Dynamic, isIgnoreCloseByESC = false)]
public class LoginWindow : AbsHFUIWindow
{
protected override void OnRunAwake()
{
base.OnRunAwake();
// 初始化UI组件引用
}
protected override void OnOpen(Action _onOpenComplete)
{
base.OnOpen(_onOpenComplete);
// 注册事件监听
}
protected override void OnClose(Action _onCloseComplete)
{
base.OnClose(_onCloseComplete);
// 取消事件监听
}
}
```
### 1.2 窗口打开方式
```csharp
// 方式1直接打开无回调
HFFunCatalogue.UIManager.OpenWindow<LoginWindow>();
// 方式2打开并获取窗口实例推荐
HFFunCatalogue.UIManager.OpenWindow<LoginWindow>((win, args) => {
// win: 打开的窗口实例
// args: 传入的额外参数
Debug.Log("窗口打开完成");
});
// 方式3带额外参数打开
object[] extraArgs = new object[] { "param1", 123 };
HFFunCatalogue.UIManager.OpenWindow<LoginWindow>((win, args) => {
// 使用窗口实例
}, extraArgs);
```
---
## 二、窗口生命周期
### 2.1 生命周期方法
| 方法 | 调用时机 | 说明 |
|-----|---------|------|
| `OnRunAwake` | 窗口创建时调用一次 | 初始化组件引用 |
| `OnOpen` | 每次打开窗口时调用 | 注册事件、刷新数据 |
| `OnClose` | 每次关闭窗口时调用 | 取消事件、清理资源 |
| `OnDestroy` | 窗口销毁时调用 | 释放资源 |
---
## 三、窗口配置属性
### 3.1 常用属性
| 属性 | 说明 | 默认值 |
|-----|------|-------|
| `isIgnoreCloseByESC` | 是否忽略ESC关闭 | false |
| `isCloseOtherWindow` | 是否关闭其他窗口 | false |
| `isNeedMask` | 是否需要遮罩 | true |
| `maskType` | 遮罩类型 | 半透明 |
---
**版本**: v1.0
**适用范围**: GiftGameX项目业务开发人员