更新UI组件命名规范:变量名与组件名保持一致

This commit is contained in:
Shiliang
2026-05-22 13:36:49 +08:00
parent 0616dd5cc7
commit 75687450ad
3 changed files with 70 additions and 19 deletions

View File

@@ -7,15 +7,20 @@
```csharp
public class LoginWindow : AbsHFUIWindow
{
[SerializeField] private SFUI_Button btn_Login;
private SFUI_Button BtnLogin;
protected override void OnRunAwake()
{
base.OnRunAwake();
// OnRunAwake: 初始化组件引用和按钮事件绑定(仅调用一次)
btn_Login.OnAddClickListener += OnBtnLogin;
btn_Login.OnAddEnterListener += OnBtnEnter;
btn_Login.OnAddExitListener += OnBtnExit;
BtnLogin = FindUICtrlByName<SFUI_Button>("BtnLogin");
if (BtnLogin != null)
{
BtnLogin.OnAddClickListener += OnBtnLoginClick;
BtnLogin.OnAddEnterListener += OnBtnLoginEnter;
BtnLogin.OnAddExitListener += OnBtnLoginExit;
}
}
protected override void OnOpen(Action _onOpenComplete)
@@ -28,13 +33,21 @@ public class LoginWindow : AbsHFUIWindow
protected override void OnClose(Action _onCloseComplete)
{
base.OnClose(_onCloseComplete);
// OnClose: 移除CTC事件监听每次关闭调用
HFFunCatalogue.Event.CTCEvent.RemoveListener<HFEvent_CTC_LoginResult>(
enHFCTCEvent.LoginResult, OnLoginResult);
// OnClose: 移除事件监听(每次关闭调用)
if (BtnLogin != null)
{
BtnLogin.OnAddClickListener -= OnBtnLoginClick;
BtnLogin.OnAddEnterListener -= OnBtnLoginEnter;
BtnLogin.OnAddExitListener -= OnBtnLoginExit;
}
void OnBtnLogin(GameObject go)
HFFunCatalogue.Event.CTCEvent.RemoveListener<HFEvent_CTC_LoginResult>(
enHFCTCEvent.LoginResult, OnLoginResult);
base.OnClose(_onCloseComplete);
}
void OnBtnLoginClick(GameObject go)
{
// 处理登录逻辑 - 使用框架标准调用方式
HFEvent_CTC_Login evt = HFFunCatalogue.New<HFEvent_CTC_Login>();
@@ -43,12 +56,12 @@ public class LoginWindow : AbsHFUIWindow
evt.Dispatch();
}
void OnBtnEnter(GameObject go)
void OnBtnLoginEnter(GameObject go)
{
// 鼠标进入
}
void OnBtnExit(GameObject go)
void OnBtnLoginExit(GameObject go)
{
// 鼠标退出
}

View File

@@ -9,10 +9,26 @@
[HFUIWindowLayer(enHFUICanvasLayer.UIWindow, enHFUIWindowLayer.Dynamic, isIgnoreCloseByESC = false)]
public class LoginWindow : AbsHFUIWindow
{
// ========== UI组件 ==========
private SFUI_Button BtnLogin;
private SFUI_InputField InputName;
private SFUI_InputField InputPassword;
private SFUI_TextMeshProUGUI TxtTitle;
protected override void OnRunAwake()
{
base.OnRunAwake();
// 初始化UI组件引用
// 初始化UI组件引用(变量名与组件名保持一致)
BtnLogin = FindUICtrlByName<SFUI_Button>("BtnLogin");
InputName = FindUICtrlByName<SFUI_InputField>("InputName");
InputPassword = FindUICtrlByName<SFUI_InputField>("InputPassword");
TxtTitle = FindUICtrlByName<SFUI_TextMeshProUGUI>("TxtTitle");
// 绑定按钮事件
if (BtnLogin != null)
{
BtnLogin.OnAddClickListener += OnBtnLoginClick;
}
}
protected override void OnOpen(Action _onOpenComplete)
@@ -23,8 +39,17 @@ public class LoginWindow : AbsHFUIWindow
protected override void OnClose(Action _onCloseComplete)
{
base.OnClose(_onCloseComplete);
// 取消事件监听
if (BtnLogin != null)
{
BtnLogin.OnAddClickListener -= OnBtnLoginClick;
}
base.OnClose(_onCloseComplete);
}
private void OnBtnLoginClick(GameObject go)
{
// 处理登录逻辑
}
}
```

View File

@@ -107,14 +107,27 @@ void OnScrollValueChanged(Vector2 value)
### 2.1 命名规则
| 组件类型 | 前缀 | 示例 |
|---------|------|-----|
| SFUI_Button | btn | btn_Login |
| SFUI_Text | txt | txt_Title |
| SFUI_Image | img | img_Avatar |
| SFUI_Toggle | toggle | toggle_Select |
| SFUI_ScrollRect | scroll | scroll_Content |
| SFUI_InputField | input | input_Name |
变量名直接使用组件名,保持与 Unity 编辑器中组件名称一致。
| 组件类型 | 示例 |
|---------|-----|
| SFUI_Button | BtnLogin |
| SFUI_Text | TxtTitle |
| SFUI_Image | ImgAvatar |
| SFUI_Toggle | ToggleSelect |
| SFUI_ScrollRect | ScrollContent |
| SFUI_InputField | InputName |
**命名约定**
- 变量名 = 组件名(保持完全一致)
- 首字母大写,采用 PascalCase 命名风格
**使用示例**
```csharp
BtnLogin = FindUICtrlByName<SFUI_Button>("BtnLogin");
TxtTitle = FindUICtrlByName<SFUI_Text>("TxtTitle");
ImgAvatar = FindUICtrlByName<SFUI_Image>("ImgAvatar");
```
### 2.2 层级结构