118 lines
6.4 KiB
C#
118 lines
6.4 KiB
C#
|
|
// WL-813y 적용 — 설정 에셋 값 갱신(C8/C45 · 코드 상수 0). 프리팹은 건드리지 않는다.
|
||
|
|
// run_script --file AgentScripts/WL813y_Apply.cs --entry WL813y_Apply.Assets
|
||
|
|
|
||
|
|
using System.Text;
|
||
|
|
using UnityEngine;
|
||
|
|
using UnityEditor;
|
||
|
|
using WL.UI;
|
||
|
|
|
||
|
|
public static class WL813y_Apply
|
||
|
|
{
|
||
|
|
public static string Assets()
|
||
|
|
{
|
||
|
|
var sb = new StringBuilder();
|
||
|
|
|
||
|
|
// ── ① 전투 패드 원점 복귀 + 하단 메뉴 숨김 (발주서 §1-6) ─────────────
|
||
|
|
var hud = Resources.Load<WLHudLayoutSettings>(WLHudLayoutSettings.ResourcesPath);
|
||
|
|
if (hud == null) sb.AppendLine("WLHudLayoutSettings 없음");
|
||
|
|
else
|
||
|
|
{
|
||
|
|
sb.AppendLine("[hud] 전 fanOrigin" + hud.fanOriginPx + " attackCenter" + hud.attackCenterPx);
|
||
|
|
hud.fanOriginPx = new Vector2(0f, 0f); // Q3 D-5: Lead 핫픽스 260 → 0
|
||
|
|
hud.attackCenterPx = new Vector2(100f, 100f); // 360 → 100
|
||
|
|
hud.idleFanOriginPx = new Vector2(0f, 260f); // 메뉴가 보이는 동안만 쓰던 자리
|
||
|
|
hud.idleAttackCenterPx = new Vector2(100f, 360f);
|
||
|
|
hud.combatHideBottomMenu = true;
|
||
|
|
hud.bottomMenuPath = "IngameUIs/WL_HUD/HUD_BottomMenu"; // 813y 실측 경로
|
||
|
|
hud.bottomMenuUseCanvasGroup = true;
|
||
|
|
hud.bottomMenuFadeSeconds = 0.18f;
|
||
|
|
hud.combatExitSeconds = 6f;
|
||
|
|
hud.combatEnterDelaySeconds = 0f;
|
||
|
|
hud.combatUseTargetAsSignal = true;
|
||
|
|
hud.bottomMenuRestoreButton = true;
|
||
|
|
hud.restoreButtonCenterPx = new Vector2(-380f, 62f);
|
||
|
|
hud.restoreButtonDiameterPx = 88f;
|
||
|
|
hud.restoreButtonLabel = "≡";
|
||
|
|
hud.restoreButtonFontPx = 46f;
|
||
|
|
hud.restoreHoldSeconds = 8f;
|
||
|
|
hud.bossBarBindExisting = true; // Q3 D-3
|
||
|
|
EditorUtility.SetDirty(hud);
|
||
|
|
sb.AppendLine("[hud] 후 fanOrigin" + hud.fanOriginPx + " attackCenter" + hud.attackCenterPx +
|
||
|
|
" idleFanOrigin" + hud.idleFanOriginPx + " idleAttack" + hud.idleAttackCenterPx +
|
||
|
|
" menu=" + hud.bottomMenuPath + " exit=" + hud.combatExitSeconds + "s");
|
||
|
|
}
|
||
|
|
|
||
|
|
// ── ② 토스트 가시성 + 텍스트 아웃라인 (발주서 §1-3 · §1-4) ───────────
|
||
|
|
var txt = Resources.Load<WLCombatTextSettings>(WLCombatTextSettings.ResourcesPath);
|
||
|
|
if (txt == null) sb.AppendLine("WLCombatTextSettings 없음");
|
||
|
|
else
|
||
|
|
{
|
||
|
|
sb.AppendLine("[text] 전 toast(sec=" + txt.lootToastSeconds + " font=" + txt.lootToastFontPx +
|
||
|
|
" w=" + txt.lootToastWidthPx + " lh=" + txt.lootToastLineHeightPx +
|
||
|
|
" centerOff=" + txt.lootToastCenterOffsetPx + ")");
|
||
|
|
txt.lootToastSeconds = 2.0f; // 발주서 §1-3: 1.2 → 2.0 s
|
||
|
|
txt.lootToastFontPx = 52f; // Q3 D-6 ②: 40 px 는 세로 캡처에서 육안 실패
|
||
|
|
txt.lootToastLineHeightPx = 68f; // 폰트 + 패널 여백이 들어갈 줄 간격
|
||
|
|
txt.lootToastWidthPx = 560f;
|
||
|
|
txt.lootToastCenterOffsetPx = -120f; // 스탯 팝업(+180) · 연쇄 문구(+520) 대역을 피한다
|
||
|
|
txt.lootToastRightMarginPx = 40f;
|
||
|
|
txt.lootToastPanelEnabled = true;
|
||
|
|
txt.lootToastPanelColor = new Color(0.03f, 0.03f, 0.05f, 0.68f);
|
||
|
|
txt.lootToastPanelPadXPx = 18f;
|
||
|
|
txt.lootToastPanelPadYPx = 6f;
|
||
|
|
txt.lootToastMinBrightness = 0.72f; // 등급 1 회색(#a6a6a7 · V 0.65)을 끌어올린다
|
||
|
|
txt.lootToastMinBrightColor = new Color(0.95f, 0.96f, 0.98f, 1f);
|
||
|
|
|
||
|
|
txt.textEdgeEnabled = true;
|
||
|
|
txt.killChainEdge = new WLTextEdge
|
||
|
|
{
|
||
|
|
enabled = true, outlineWidth = 0.30f, outlineColor = new Color(0.05f, 0.03f, 0.02f, 1f),
|
||
|
|
shadowOffset = new Vector2(0.55f, -0.55f), shadowColor = new Color(0f, 0f, 0f, 0.8f),
|
||
|
|
shadowSoftness = 0.25f, faceDilate = 0.1f,
|
||
|
|
};
|
||
|
|
txt.statPopupEdge = new WLTextEdge
|
||
|
|
{
|
||
|
|
enabled = true, outlineWidth = 0.26f, outlineColor = new Color(0.05f, 0.03f, 0.02f, 1f),
|
||
|
|
shadowOffset = new Vector2(0.45f, -0.45f), shadowColor = new Color(0f, 0f, 0f, 0.75f),
|
||
|
|
shadowSoftness = 0.2f, faceDilate = 0.08f,
|
||
|
|
};
|
||
|
|
txt.damageEdge = new WLTextEdge
|
||
|
|
{
|
||
|
|
enabled = true, outlineWidth = 0.22f, outlineColor = new Color(0.03f, 0.02f, 0.02f, 1f),
|
||
|
|
shadowOffset = new Vector2(0.35f, -0.35f), shadowColor = new Color(0f, 0f, 0f, 0.7f),
|
||
|
|
shadowSoftness = 0.15f, faceDilate = 0.05f,
|
||
|
|
};
|
||
|
|
txt.lootToastEdge = new WLTextEdge
|
||
|
|
{
|
||
|
|
enabled = true, outlineWidth = 0.24f, outlineColor = new Color(0.03f, 0.02f, 0.02f, 1f),
|
||
|
|
shadowOffset = new Vector2(0.4f, -0.4f), shadowColor = new Color(0f, 0f, 0f, 0.7f),
|
||
|
|
shadowSoftness = 0.18f, faceDilate = 0.06f,
|
||
|
|
};
|
||
|
|
|
||
|
|
txt.statPopupUseGrowthEvents = true; // 발주서 §1-2 · 813k 축
|
||
|
|
txt.statPopupPointFormat = "+5 포인트 <size=70%>(보유 {0})</size>";
|
||
|
|
txt.statPopupMergeMultiLevel = true;
|
||
|
|
EditorUtility.SetDirty(txt);
|
||
|
|
sb.AppendLine("[text] 후 toast(sec=" + txt.lootToastSeconds + " font=" + txt.lootToastFontPx +
|
||
|
|
" w=" + txt.lootToastWidthPx + " lh=" + txt.lootToastLineHeightPx +
|
||
|
|
" centerOff=" + txt.lootToastCenterOffsetPx + " panel=" + txt.lootToastPanelEnabled + ")");
|
||
|
|
sb.AppendLine("[text] edge kill=" + txt.killChainEdge + " / stat=" + txt.statPopupEdge +
|
||
|
|
" / dmg=" + txt.damageEdge + " / loot=" + txt.lootToastEdge);
|
||
|
|
}
|
||
|
|
|
||
|
|
// ── ③ 보스 배너 늦은 구독 (발주서 §1-5) ──────────────────────────────
|
||
|
|
var boss = Resources.Load<WLBossUiSettings>(WLBossUiSettings.ResourcesPath);
|
||
|
|
if (boss == null) sb.AppendLine("WLBossUiSettings 없음");
|
||
|
|
else
|
||
|
|
{
|
||
|
|
boss.bannerTriggerExisting = true;
|
||
|
|
EditorUtility.SetDirty(boss);
|
||
|
|
sb.AppendLine("[boss] bannerTriggerExisting=" + boss.bannerTriggerExisting);
|
||
|
|
}
|
||
|
|
|
||
|
|
AssetDatabase.SaveAssets();
|
||
|
|
AssetDatabase.Refresh();
|
||
|
|
return sb.ToString();
|
||
|
|
}
|
||
|
|
}
|