diff --git a/Assets/Scripts/OutGame/UI/HeroScreens.cs b/Assets/Scripts/OutGame/UI/HeroScreens.cs index 46ce6169..3951eca4 100644 --- a/Assets/Scripts/OutGame/UI/HeroScreens.cs +++ b/Assets/Scripts/OutGame/UI/HeroScreens.cs @@ -92,39 +92,70 @@ namespace TKS.OutGame } /// - /// 영웅 상세(img06 · 기획 S6 v4) — 전투력 · 일러 + 양옆 장비 6칸(빈 칸 탭 = 가방에서 장착 · 1칸 = 1강) · 이름 띠(병종 · 이름 · ★) · - /// 스킬 정보(액티브·패시브 = 이름·효과·Lv·쿨 · 표시만 · 스킬 레벨업 = B 단계) · Lv/경험 바 + 레벨업(골드) · 승급(6칸) · 조각 바 + 진화 · 상세정보 · 도감 · ◀ ▶ 전환. + /// 영웅 상세(UI 상업용 재설계 ① · PD 2026-11-09 확정 목업 hero_detail.html = 좌표·부품·색 SOT · 본문 y = 목업 y − 224) — + /// 등급 색 바탕(글로우 + 문양 · 화면 전체) · 전투력 칩 · 일러(좌우 밀기 = 영웅 전환) + 양옆 장비 6칸 · 레벨 행(레벨업 · 승급) · 이름 띠(세력 · 병종 · 등급 · ★) · + /// 스킬 패널(액티브 · 패시브 · 행마다 레벨업) · 메뉴 4버튼(정보 = 상세정보 + 도감 · 진화 = 조각 팝업 · 각성 · 외형 = 준비 중). 색·스프라이트 = 테마 표(ui_theme.csv) id. /// public class HeroDetailScreen : OutGameScreen { + const float SwipeMin = 80f; // 일러 밀기 = 가로 80 px 이상(기준 해상도 px) + static readonly string[] MenuNames = { "정보", "진화", "각성", "외형" }; + static readonly string[] MenuIcons = { "info", "star_l", "fire", "top" }; + static readonly Vector2[] MenuIconSize = { new Vector2(26f, 60f), new Vector2(58f, 62f), new Vector2(64f, 50f), new Vector2(62f, 46f) }; + string id; readonly List order = new List(); + Image bgFill; + Image bgGlow; + Text ownedText; Text power; RectTransform art; - readonly Image[] slotImg = new Image[6]; - readonly Text[] slotName = new Text[6]; - readonly Text[] slotState = new Text[6]; + float dragX; + readonly GameObject[] slotRoot = new GameObject[6]; + readonly Image[] slotGlow = new Image[6]; + readonly Image[] slotBg = new Image[6]; + readonly Image[] slotDeco = new Image[6]; + readonly Image[] slotLight = new Image[6]; readonly Image[] slotIcon = new Image[6]; - readonly Image[] slotMark = new Image[6]; - RectTransform starRow; - Image typeDot; - Text typeMark; - Text nameText; - Text subText; - Text starText; - Text[] skillName = new Text[2]; - Text[] skillDesc = new Text[2]; - Text[] skillChip = new Text[2]; + readonly Text[] slotName = new Text[6]; + readonly Image[] slotCheck = new Image[6]; + readonly Image[] slotBag = new Image[6]; + Text lvBadge; Text lvText; Text expText; - RectTransform expBar; - Button levelBtn; - Button promoteBtn; - Text shardText; - RectTransform shardBar; - Button evolveBtn; - Button skillBtn; + RectTransform expFill; + Image levelImg; + Text levelLabel; + Text levelCost; + Image goldIcon; + Image promoteImg; + Text promoteSub; + Image bandImg; + Image flagIcon; + Image clsIcon; + Image paraImg; + Text gradeText; + Text nameText; + Text typeText; + RectTransform starRow; + Image panelImg; + GameObject coolChip; + Text coolText; + readonly Image[] rowImg = new Image[2]; + readonly Image[] skFrame = new Image[2]; + readonly Image[] skCls = new Image[2]; + readonly Text[] skName = new Text[2]; + readonly Text[] skHanja = new Text[2]; + readonly Text[] skDesc = new Text[2]; + readonly Text[] skLv = new Text[2]; + readonly Image[] skBtn = new Image[2]; + readonly Text[] skBtnText = new Text[2]; + readonly Text[] skBtnSub = new Text[2]; + readonly GameObject[] skCost = new GameObject[2]; + readonly Text[] skBooks = new Text[2]; + readonly Text[] skGold = new Text[2]; + Image evolveDot; public string HeroId { @@ -140,107 +171,257 @@ namespace TKS.OutGame foreach (var o in S.Owned(h.isSoldier)) order.Add(o.id); } + // ---------- 목업 좌표 도우미(부모 왼쪽 위 기준 · y 아래로) ---------- + + static Color Col(string colorId) + { + return UISkin.Col(colorId, Color.white); + } + + static RectTransform At(Transform p, string name, float x, float y, float w, float h) + { + return UiKit.Rect(name, p, new Vector2(0f, 1f), new Vector2(0f, 1f), new Vector2(x, -y), new Vector2(w, h)); + } + + static Image Spr(Transform p, string name, string skin, float x, float y, float w, float h, string color, bool raycast = false) + { + return UiKit.Skin(At(p, name, x, y, w, h), skin, Col(color), raycast); + } + + Image Press(Transform p, string name, string skin, float x, float y, float w, float h, string color, System.Action onClick) + { + var img = Spr(p, name, skin, x, y, w, h, color, true); + img.gameObject.AddComponent