#if UNITY_EDITOR using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.UI; using TMPro; using HotUpdate.UI; public static class VerifyHomeCampAdaptationAndEntrances { const string ScenePath = "Assets/Bundles/Scenes/Town/HomeCamp/HomeCamp.unity"; const string PrefabPath = "Assets/Bundles/UI/Prefab/UI_MainHUD.prefab"; const float ReferenceAspect = 1080f / 1920f; static readonly (string name, int w, int h)[] TestResolutions = new[] { ("Standard 9:16", 1080, 1920), ("Long 9:18", 1080, 2160), ("iPhone 9:19.5", 1080, 2340), ("Android Long 9:20", 1080, 2400), ("Ultra Long 9:22", 1080, 2640), ("Wide 2:3", 1080, 1620), ("Tablet 3:4", 1080, 1440), }; public static string Run() { var sb = new StringBuilder(); sb.AppendLine("=== Automated Verification: HomeCamp Camera Adaptation & Building Entrances ==="); bool allPassed = true; // 1. Verify UI Prefab & Bindings sb.AppendLine("\n[Phase 1: UI Prefab & Event Dispatch Verification]"); var prefab = AssetDatabase.LoadAssetAtPath(PrefabPath); if (prefab == null) return "FAIL: UI_MainHUD.prefab not found"; var hudGo = UnityEngine.Object.Instantiate(prefab); try { var hudView = hudGo.GetComponent() ?? hudGo.AddComponent(); var group = hudGo.transform.Find("Group_CampBuildings"); if (group == null) { sb.AppendLine("FAIL: Group_CampBuildings not found in UI_MainHUD.prefab"); return sb.ToString(); } var triggeredKeys = new List(); hudView.OnHomeActionClicked += key => triggeredKeys.Add(key); hudView.Bind(); var expectedButtons = new (string btnName, string expectedKey, string expectedTitle)[] { ("Btn_Building_MainHouse", "Camp", "营地大厅"), ("Btn_Building_Shop", "Shop", "小镇商店"), ("Btn_Building_Pets", "Pets", "伙伴之家"), ("Btn_Building_Fountain", "Rewards", "祈愿喷泉"), ("Btn_Building_Stall", "Daily", "集市货摊"), }; foreach (var (btnName, expectedKey, expectedTitle) in expectedButtons) { var btnTf = group.Find(btnName); if (btnTf == null) { sb.AppendLine($"[FAIL] Button {btnName} not found under Group_CampBuildings"); allPassed = false; continue; } var btn = btnTf.GetComponent