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