Files
UnityAI/03_核心功能/UI窗口开发指南.md

81 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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项目业务开发人员