ThreeKingdomsSlingshot/Assets/Scripts/Editor/TitleCapture.cs

35 lines
1.4 KiB
C#
Raw Normal View History

타이틀 화면 — 장수 모임 등장 · R22 대기 모션 · 꾸미기 연출 · Press Any Key(PD 2026-11-13 확정) - OutGame/UI/TitleScreen.cs: BootFlow.TitleProvider 등록(메모리 세이브 = 테스트·캡처는 건너뜀 → 기존처럼 바로 로비) 장수 6명이 화면 밖에서 뒷줄→앞줄로 모임(착지 흙먼지) → 로고 내려앉음·둥실·반짝이 → Press Any Key 깜박임 누름 = 등장 중이면 건너뜀 · 글자가 뜬 뒤면 검정 페이드 → 로비 · 타이틀 동안 아래 루트 캔버스 끔 층(P41) = 루트 Static(배경 · cover) → Ambient Frame(햇살·빛 번짐·흙먼지·불씨) → Stage Frame(장수·로고·글자 · contain) - 표 Resources/UI/title_screen.csv(자리·등장 박자·대기 유지 초·깜빡임·로고·글자·페이드) · title_ambient.csv(LobbyAmbient) - 그림 Resources/UI/Title/(배경 · 로고 A · 장수 6 × R22 자동 리그 4자세+깜빡임 · pack) · 아틀라스 UI_Title(ui_atlas.csv folder 1줄) - LobbyAmbient.Load: 테마에 없는 id 가 경로면 Resources 폴백(1줄) - 캡처 TitleCaptureDriver + Editor/TitleCapture(-executeMethod TKS.EditorTools.TitleCapture.Capture -titleDir) · 테스트 TitleScreenTests 8 - 검증: 에디터 TitleScreenTests 8/8 · BootFlowTests 4/4 · OutGameTests.Lobby_Tabs_Back_ComingSoon 1/1 · QA r1 B4(화면비) → r2 PASS(B 0) - 의존: BootFlow.cs·LoadingScreen.cs(로딩 화면 세션 · 아직 미커밋) — 그 커밋 뒤 push Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-13 03:50:04 +00:00
using TKS.OutGame;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
namespace TKS.EditorTools
{
/// <summary>
/// 타이틀 화면 검증 캡처(PD 2026-11-13) — 사본 프로젝트에서:
/// Unity.exe -projectPath &lt;사본&gt; -force-d3d11 -executeMethod TKS.EditorTools.TitleCapture.Capture -titleDir &lt;dir&gt;
/// 메모리 세이브 · Battle 씬 → Play → TitleCaptureDriver 가 찍고 스스로 종료(UI 캡처와 따로 · 1회 ≈ 수십 초).
/// </summary>
public static class TitleCapture
{
public static void Capture()
{
string dir = GetArg("-titleDir");
if (string.IsNullOrEmpty(dir)) dir = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "Logs", "title_capture");
EditorSceneManager.OpenScene(ProjectSetup.ScenePath, OpenSceneMode.Single);
SessionState.SetBool(SaveStore.MemoryFlagKey, true);
SessionState.SetString(TitleCaptureDriver.DirKey, dir);
Debug.Log("[TKS] 타이틀 캡처 시작 → " + dir);
EditorApplication.EnterPlaymode();
}
static string GetArg(string name)
{
var args = System.Environment.GetCommandLineArgs();
for (int i = 0; i < args.Length - 1; i++)
if (args[i] == name) return args[i + 1];
return null;
}
}
}