using UnityEngine; using UnityEngine.UI; using PhxhSDK; /* ╔═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ UIWindow 默认Home按钮处理模块 (Default Home Button) ║ ╠═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════╣ ║ ║ ║ 【功能说明】 ║ ║ 处理UIWindow的默认"回主界面"按钮的自动绑定和点击逻辑。 ║ ║ 通过约定节点名(BtnHome、BtnBackHome、HomeButton),框架自动识别并绑定按钮。 ║ ║ ║ ║ 【使用方式】 ║ ║ 1. 默认使用:在预制体中创建约定名称的按钮,无需代码 ║ ║ 2. 自定义节点名:重写 DefaultHomeButtonNames 虚属性 ║ ║ 3. 自定义行为:重写 OnHomeClick() 虚方法 ║ ║ ║ ║ 【默认行为】 ║ ║ OnHomeClick() 默认执行:CloseWindow(true) ║ ║ ║ ╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝ */ /// /// UI窗口基类 - 默认Home按钮处理部分 /// 负责自动识别和绑定预制体中的"回主界面"按钮 /// public abstract partial class UIWindow { #region Default Home Button - 默认回主界面按钮自动绑定 /// /// 默认回主界面按钮的节点名配置(子类可重写) /// 默认支持:BtnHome、BtnBackHome、HomeButton /// protected virtual string[] DefaultHomeButtonNames => new[] { "BtnHome", "BtnBackHome", "HomeButton" }; /// /// 绑定所有配置的默认回主界面按钮 /// 在 DoInit() 阶段自动调用 /// private void BindDefaultHomeButtons() { foreach (var buttonName in DefaultHomeButtonNames) { TryBindHomeButton(buttonName, OnHomeClick); } } /// /// 尝试绑定回主界面按钮(节点不存在时静默跳过) /// private void TryBindHomeButton(string nodeName, System.Action callback) { var trans = transform.Find(nodeName); if (trans) { var btn = trans.GetComponent