Project_WL/AgentScripts/WL813_Shots.cs

59 lines
3.4 KiB
C#
Raw Permalink Normal View History

// WL813_Shots.cs — #813m 세로 캡처 5장 세트 + 엄지 반경 오버레이 진입점
//
// # 0) 게임뷰를 세로 규격으로 (기존 도구 재사용 · 중복 구현 없음)
// unity command run_script --file AgentScripts/WL_GameViewSize.cs --entry WL_GameViewSize.Set --args '[1080,1920]'
//
// # 1) 5장 세트 — 6 s 간격으로 title → hud → combat → boss → popup 을 자동 저장
// # 간격 사이에 QA 가 해당 화면을 만든다(콘솔에 "다음 캡처 = <슬롯>" 이 뜬다).
// unity command run_script --file AgentScripts/WL813_Shots.cs --entry WL813_Shots.Run --args '[6]'
//
// # 2) 한 장만 · 오버레이 포함 한 장 더
// unity command run_script --file AgentScripts/WL813_Shots.cs --entry WL813_Shots.Shot --args '["hud"]'
// unity command run_script --file AgentScripts/WL813_Shots.cs --entry WL813_Shots.ShotReach --args '["hud"]'
//
// # 3) 오버레이만 켜고/끄기(육안 확인용) · 수치 요약
// unity command run_script --file AgentScripts/WL813_Shots.cs --entry WL813_Shots.Overlay --args '[true]'
// unity command run_script --file AgentScripts/WL813_Shots.cs --entry WL813_Shots.Layout
// unity command run_script --file AgentScripts/WL813_Shots.cs --entry WL813_Shots.Result
//
// 저장 위치: Screenshots_WL/Shots/<번호>_<슬롯>_<W>x<H>_<HHmmss>.png + shots_<HHmmss>.txt (Assets 밖 · 미추적)
//
// 엄지 반경 오버레이 = 우하단(미러면 좌하단) 모서리 기준 `WLHudLayoutSettings.thumbReachRadiusPx` 원 +
// 버튼별 실제 지름 원(반경 안 초록 · 밖 빨강) + 조이스틱 원(파랑). **캡처 직후 제거**한다.
//
// 🔴 `capture_game_view --source screen` 은 에디터 창 비율로 나와 세로 검증에 못 쓴다 → 여기서는 ScreenCapture 로 직접 뜬다.
// 🔴 Play 중에만 동작하고 게임 상태·에셋을 수정하지 않는다(오버레이는 HideFlags.DontSave 임시 오브젝트).
using WL.Tools;
public static class WL813_Shots
{
/// <summary>5장 세트(title · hud · combat · boss · popup). intervalSeconds 마다 한 장, 인게임 슬롯은 오버레이 1장 추가.</summary>
public static object Run(float intervalSeconds) { return WL813_ShotOverlay.RunSet(intervalSeconds, true); }
/// <summary>오버레이 없이 5장만.</summary>
public static object RunPlain(float intervalSeconds) { return WL813_ShotOverlay.RunSet(intervalSeconds, false); }
/// <summary>지금 화면 1장(오버레이 없음).</summary>
public static object Shot(string slot) { return WL813_ShotOverlay.Shot(slot, false); }
/// <summary>지금 화면 2장(원본 + 엄지 반경 오버레이).</summary>
public static object ShotReach(string slot) { return WL813_ShotOverlay.Shot(slot, true); }
/// <summary>오버레이만 켜기/끄기(캡처 없이 육안 확인).</summary>
public static object Overlay(bool on)
{
return on ? WL813_ShotOverlay.ShowOverlay() : WL813_ShotOverlay.HideOverlay();
}
/// <summary>엄지 반경 수치 요약(설정 기하 vs 실제 배치 · §E 3-1 · 7-2 근거).</summary>
public static object Layout() { return WL813_ShotOverlay.LayoutSummary(); }
/// <summary>진행 상황 · 저장 목록 · 매니페스트.</summary>
public static object Result()
{
var m = WL813_ShotOverlay.LastManifest;
return WL813_ShotOverlay.Status() + (string.IsNullOrEmpty(m) ? "" : "\n" + m);
}
}