using UnityEngine; using UnityEngine.UI; /// /// UI页面测试脚本 - 用于测试页面UI的显示、隐藏和状态管理 /// 帮助调试和验证UIManager的功能 /// public class UIPageTest : MonoBehaviour { [Header("测试按钮")] public Button testShowPageButton; // 测试显示页面按钮 public Button testHideUIButton; // 测试隐藏UI按钮 public Button testShowPageAgainButton; // 测试再次显示页面按钮 public Button testForceShowButton; // 测试强制显示按钮 public Button testResetStateButton; // 测试重置状态按钮 public Button testDebugStateButton; // 测试调试状态按钮 [Header("测试配置")] [SerializeField] private string testUIName = "背包出售"; // 测试的UI名称 private UIManager uiManager; private void Start() { // 获取UI管理器引用 uiManager = UIManager.Instance; if (uiManager == null) { Debug.LogError("UIManager未找到!"); return; } // 绑定按钮事件 BindButtonEvents(); Debug.Log($"UI页面测试脚本已启动,测试UI: {testUIName}"); } /// /// 绑定按钮事件 /// private void BindButtonEvents() { if (testShowPageButton != null) { testShowPageButton.onClick.AddListener(TestShowPage); testShowPageButton.GetComponentInChildren().text = $"显示页面: {testUIName}"; } if (testHideUIButton != null) { testHideUIButton.onClick.AddListener(TestHideUI); testHideUIButton.GetComponentInChildren().text = $"隐藏UI: {testUIName}"; } if (testShowPageAgainButton != null) { testShowPageAgainButton.onClick.AddListener(TestShowPageAgain); testShowPageAgainButton.GetComponentInChildren().text = $"再次显示: {testUIName}"; } if (testForceShowButton != null) { testForceShowButton.onClick.AddListener(TestForceShow); testForceShowButton.GetComponentInChildren().text = $"强制显示: {testUIName}"; } if (testResetStateButton != null) { testResetStateButton.onClick.AddListener(TestResetState); testResetStateButton.GetComponentInChildren().text = $"重置状态: {testUIName}"; } if (testDebugStateButton != null) { testDebugStateButton.onClick.AddListener(TestDebugState); testDebugStateButton.GetComponentInChildren().text = "调试状态"; } Debug.Log("所有测试按钮事件已绑定"); } /// /// 测试显示页面 /// public void TestShowPage() { Debug.Log($"=== 测试1: 显示页面 {testUIName} ==="); if (uiManager != null) { uiManager.ShowPage(testUIName); // 检查状态 bool isVisible = uiManager.IsPageVisible(testUIName); Debug.Log($"页面 {testUIName} 显示后状态: {isVisible}"); } } /// /// 测试隐藏UI /// public void TestHideUI() { Debug.Log($"=== 测试2: 隐藏UI {testUIName} ==="); if (uiManager != null) { uiManager.HideUI(testUIName); // 检查状态 bool isVisible = uiManager.IsPageVisible(testUIName); Debug.Log($"UI {testUIName} 隐藏后状态: {isVisible}"); } } /// /// 测试再次显示页面 /// public void TestShowPageAgain() { Debug.Log($"=== 测试3: 再次显示页面 {testUIName} ==="); if (uiManager != null) { uiManager.ShowPage(testUIName); // 检查状态 bool isVisible = uiManager.IsPageVisible(testUIName); Debug.Log($"页面 {testUIName} 再次显示后状态: {isVisible}"); } } /// /// 测试强制显示页面 /// public void TestForceShow() { Debug.Log($"=== 测试4: 强制显示页面 {testUIName} ==="); if (uiManager != null) { uiManager.ForceShowPage(testUIName); // 检查状态 bool isVisible = uiManager.IsPageVisible(testUIName); Debug.Log($"页面 {testUIName} 强制显示后状态: {isVisible}"); } } /// /// 测试重置状态 /// public void TestResetState() { Debug.Log($"=== 测试5: 重置页面状态 {testUIName} ==="); if (uiManager != null) { uiManager.ResetPageUIState(testUIName); // 检查状态 bool isVisible = uiManager.IsPageVisible(testUIName); Debug.Log($"页面 {testUIName} 重置后状态: {isVisible}"); } } /// /// 测试调试状态 /// public void TestDebugState() { Debug.Log($"=== 测试6: 调试所有UI状态 ==="); if (uiManager != null) { uiManager.DebugPrintAllUIStates(); } } /// /// 完整测试流程 /// public void RunFullTest() { Debug.Log("=== 开始完整测试流程 ==="); TestShowPage(); // 等待一帧 StartCoroutine(RunTestSequence()); } private System.Collections.IEnumerator RunTestSequence() { yield return new WaitForSeconds(1f); TestHideUI(); yield return new WaitForSeconds(1f); TestShowPageAgain(); yield return new WaitForSeconds(1f); TestDebugState(); Debug.Log("=== 完整测试流程结束 ==="); } /// /// 清理按钮事件 /// private void OnDestroy() { if (testShowPageButton != null) testShowPageButton.onClick.RemoveListener(TestShowPage); if (testHideUIButton != null) testHideUIButton.onClick.RemoveListener(TestHideUI); if (testShowPageAgainButton != null) testShowPageAgainButton.onClick.RemoveListener(TestShowPageAgain); if (testForceShowButton != null) testForceShowButton.onClick.RemoveListener(TestForceShow); if (testResetStateButton != null) testResetStateButton.onClick.RemoveListener(TestResetState); if (testDebugStateButton != null) testDebugStateButton.onClick.RemoveListener(TestDebugState); Debug.Log("UI页面测试脚本已清理"); } }