// WL796_Probe.cs — PD 지시 #796 (하단 채팅창 숨김 + 하단 메뉴 가득 채우기) 사전 실측 · 읽기 전용 // unity command run_script --file AgentScripts/WL796_Probe.cs --entry WL796_Probe.DumpPrefab // unity command run_script --file AgentScripts/WL796_Probe.cs --entry WL796_Probe.DumpNode --args '["WL_HUD"]' // unity command run_script --file AgentScripts/WL796_Probe.cs --entry WL796_Probe.RuntimeRects (Play 중) // 프리팹을 저장하지 않는다(AssetDatabase.LoadAssetAtPath 로 읽기만). using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEditor; using UnityEngine; using UnityEngine.UI; public static class WL796_Probe { const string PrefabPath = "Assets/Res_Addr/MainUI/NewGameUI.prefab"; static GameObject Root() { return AssetDatabase.LoadAssetAtPath(PrefabPath); } static string Path(Transform t, Transform root) { var parts = new List(); while (t != null && t != root) { parts.Add(t.name); t = t.parent; } parts.Reverse(); return string.Join("/", parts); } static string RtLine(RectTransform rt) { if (rt == null) return "(no RectTransform)"; return string.Format( "aMin{0} aMax{1} piv{2} anchoredPos{3} sizeDelta{4} scale{5}", rt.anchorMin.ToString("F2"), rt.anchorMax.ToString("F2"), rt.pivot.ToString("F2"), rt.anchoredPosition.ToString("F1"), rt.sizeDelta.ToString("F1"), rt.localScale.ToString("F3")); } static string Comps(GameObject go) { var names = go.GetComponents() .Where(c => c != null) .Select(c => c.GetType().Name) .Where(n => n != "RectTransform" && n != "Transform"); return string.Join(",", names.ToArray()); } static void Walk(Transform t, Transform root, StringBuilder sb, int depth, int maxDepth) { string pad = new string(' ', depth * 2); var rt = t as RectTransform; sb.Append(pad).Append(t.name) .Append(t.gameObject.activeSelf ? "" : " [OFF]") .Append(" ").Append(RtLine(rt)); string c = Comps(t.gameObject); if (c.Length > 0) sb.Append(" {").Append(c).Append("}"); var btn = t.GetComponent