Project_WL/AgentScripts/WL815d_PROBE.txt

211 lines
14 KiB
Plaintext
Raw Permalink Normal View History

# WL815d Probe 2026-09-11 01:46:18 (edit mode · Play 0 · 로그인 0)
playMode=False
── ⓪ 에셋 · SO 값 (전부 C45)
원본 프리팹 기준선: Assets/Res_Addr/MainUI/NewGameUI.prefab 5361935B · 2026-09-08 17:05:53Z
[PASS] Resources.Load("WL/WLStageUiSettings") — NEW 에셋
[PASS] WLStageUiSettings.Enabled = True
HUD: stageLabel="스테이지 {0}" enemy="남은 적 {0} / {1}" warn=10s countdown="준비" 존게이지숨김=True
메뉴: hide=True 목록 11개 · 유지 표기 7개 · 복원=True · 룩토글유지=True
결과: 제목="스테이지 {0} 클리어!" 행 6개 [ClearTime · Kills · EliteKills · MaxChain · HitsPotions · Retries] · 버튼 [다음 스테이지] [로비로] · 배지="무피격 클리어!"
실패: [다시 도전] [로비로] · 사망="쓰러졌습니다. / 다시 도전하시겠습니까?" · 시간초과="시간 초과! / 남은 적 {0}마리" · 결과창억제=True
로비: lobbyMode=ReturnToLobby titleScene="Title"
[PASS] 타이머 경고 = 마지막 10 s(PD 60 s 규칙) — 실측 10
[PASS] 815b WLStageSettings 존재
[PASS] F-27 autoEnterOnMapEnter = 1 (맵 진입 = 스테이지 1) — 실측 True
[PASS] bindReviveOkToRetry = 0 (815d 2버튼 팝업이 대신한다) — 실측 False
[PASS] toLobbyCallsReturnToLobby = 1 (로비 ⓐ안) — 실측 True
[PASS] 장벽 훅 사용 on/off = True/True
기타: mirrorRunEnded=True mirrorRunHudEvents=True clearHoldScale=0 wrapToFirstStage=False
[PASS] 자동 부활 0 (reviveWatchdogSeconds) — 실측 0
815c 장벽: style=Props(0 None/1 Ring/2 Props/3 Fire) enabled=True showVisual=True blockEnabled=True
[PASS] F-26 style = 2(Props · 울타리) — 실측 2
── ① 장벽 훅 — StageBarrierHook.Set/Clear = StageBarrier.Set/Clear
장벽 훅 연결 — Set/Clear = WL.Combat.Stage.StageBarrier (bind 1회)
[PASS] StageBarrierHook.Set 대입됨
[PASS] StageBarrierHook.Clear 대입됨
[PASS] 훅 Set 호출 1 — 실측 1
[PASS] 815c StageBarrier.Set 실제 실행 +1 — 실측 1
[PASS] 장벽 활성 = True 중심 (115.0, 0.4, -22.0) r=14.0
[PASS] 815c StageBarrier.Clear 실제 실행 +1 — 실측 1
[PASS] 장벽 해제 = True
[PASS] 훅 예외 0 — 실측 0
StageDirector.Enter(0) = True · 상태 Entering · 고정 수 8 · 제한 60s
[PASS] 입장 시 훅 Set 호출 ≥1 — 실측 1 중심 (115.0, 0.4, -22.0) r=14.0
[PASS] 이탈 시 훅 Clear 호출 ≥1 — 실측 1
장벽 훅 해제 — no-op 복귀(unbind 1회)
[PASS] Unbind 뒤 815c 실행 0 = no-op(C8 ①)
장벽 훅 연결 — Set/Clear = WL.Combat.Stage.StageBarrier (bind 2회)
[StageBarrierBinding] bound=True hasSet=True hasClear=True · 훅 호출 set=2 clear=1 faults=0 · 마지막 (115.0, 0.4, -22.0) r=14.0 · 815c 실행 set=2 clear=2 active=False featureEnabled=True
── ② 노드 — NewGameUI 프리팹(저장 0)에 HUD·결과·실패 팝업 조립
[PASS] LoadPrefabContents(Assets/Res_Addr/MainUI/NewGameUI.prefab)
Bind HUD : 연결 IngameUIs/WL_HUD · pos(0.00, -483.56) size(995.56, 167.11) 칸=0 스테이지모드=False 존게이지=True 남은적=False unitsPerPx=1.7778
Bind 결과 : 연결 IngameUIs/WL_HUD · box size(79.63, 100.00) 행틀=11 스테이지모드=False 버튼=[다음 런](True) [닫기] 배지=False unitsPerPx=0.0926 · sortingOrder=-1
[PASS] 813q 노드 조립(WL_RunHud · WL_RunResult · HideFlags.DontSave)
[PASS] StageUiBridge 구독 on
[PASS] StageEvents 구독 배선 — Entered 1 Countdown 1 Started 1 Enemy 1 Time 1 Cleared 1 Failed 1 Exited 1
[PASS] 813z ReviveDialog 컴포넌트 발견(IngameUIs/WL_HUD/WL_ReviveDialog)
ReviveDialog init: initialized · 폴백 팝업 box size(1351.11, 675.56) 버튼=1 [부활] unitsPerPx=1.7778
[PASS] ReviveDialog.Active 세팅
── ③ 상단 3요소 — 스테이지 N · 남은 시간 mm:ss · 남은 적 M/T (+ 카운트다운)
[PASS] StageEntered 수신 1
[PASS] RunHud 스테이지 모드 on
[PASS] ① 단계 = "스테이지 1" — 실측 "스테이지 1"
[PASS] ② 타이머 = 01:00(제한 60 s) — 실측 "01:00"
[PASS] ③ 남은 적 = "남은 적 8 / 8" — 실측 "남은 적 8 / 8"
[PASS] 존 게이지 접힘(기준서 §F-2) — 실측 활성=False
[PASS] 카운트다운 = "준비" 표시 — 실측 보임=True "준비"
[PASS] 전투 시작 = 카운트다운 줄 접힘 — 실측 False
[PASS] 처치 3 → "남은 적 5 / 8" — 실측 "남은 적 5 / 8"
[PASS] 42 s → 00:42 · 평상색 — 실측 "00:42" warn=False
[PASS] 마지막 10 s → 붉은색(경고) — 실측 "00:10" warn=True color=#FF4A47
[PASS] 남은 적 2 → 강조색 — 실측 "남은 적 2 / 8"
[PASS] 병행 RunEvents 2건 무시 — 실측 2
[PASS] 🔴 병행 발행이 상단 3요소를 덮지 않는다 — "스테이지 1" "00:10" "남은 적 2 / 8"
HUD 배치: pos(0.00, -483.56) size(995.56, 245.33) 칸=0 스테이지모드=True 존게이지=False 남은적=True unitsPerPx=1.7778
[RunHud] 구독=True bound=True visible=True · started=1 tick=1 zoneCleared=0 gate=0 boss=0 ended=0
타이머 "00:10" (남은 9.4s · 경고=True · 쓰기 3회) · 단계 "스테이지 1" (쓰기 0회)
[813q2] 타이머 색 = FF4A47 (색 쓰기 2회 · 다음런리셋대기=False · 기본 F2F5FA / 경고 FF4A47)
존 칸 0 (fill 쓰기 0회):
노드 pos(0.00, -483.56) size(995.56, 245.33) active=True 부모=WL_HUD SafeArea=True
[815d] 스테이지모드=True 단계="스테이지 1"(쓰기 1) 남은적="남은 적 2 / 8"(쓰기 3) 알림="준비"(보임 False · 쓰기 2) · 무시한 RunEvents=2 · 존게이지활성=False · 경고초=10s
edge = Font SDF Material (WL813y Edge) shader=TextMeshPro/Mobile/Distance Field outlineW=0.280 outlineC=0D0805FF underlay=000000CC off(0.50,-0.50) soft=0.22 UNDERLAY_ON=True
설정 enabled=True hud=True topMargin=272px width=560px timerPx=56 warn=30s pulse=1.35×0.3s
── ④ 불필요 메뉴 숨김 · 복원 (§J ① · 원본 프리팹 diff 0)
[PASS] 숨김 목록 11개 전부 실존(경로 해석 성공) — 못 찾음 0
숨김: 메뉴 숨김 — 경로 11개 중 찾음 11 · 실제로 끈 것 11 · 못 찾음 0
[PASS] 원본이 다시 켠 3건을 재보장으로 도로 끔 — 실측 3건 · 남은 on 0 (주기 0.5s)
[PASS] 이미 꺼져 있으면 쓰기 0회(GC 0)
복원: 메뉴 복원 11건
| # | 경로(NewGameUI 루트 기준) | 실제 노드 경로 | 프리팹 저장 | 스테이지 중 | 이탈 뒤 |
|---|---|---|---|---|---|
| 0 | `Common/GuideQuest` | `WL_SafeArea_Back/Common/GuideQuest` | off | **off** | **on** |
| 1 | `Common/TopRightBtns` | `WL_SafeArea_Back/Common/TopRightBtns` | off | **off** | **on** |
| 2 | `Common/TopRightMoney` | `WL_SafeArea_Back/Common/TopRightMoney` | off | **off** | **on** |
| 3 | `Common/Lv` | `WL_SafeArea_Back/Common/Lv` | off | **off** | **on** |
| 4 | `IngameUIs/WL_HUD/HUD_Currency` | `IngameUIs/WL_HUD/HUD_Currency` | off | **off** | **on** |
| 5 | `IngameUIs/WL_HUD/HUD_Level` | `IngameUIs/WL_HUD/HUD_Level` | off | **off** | **on** |
| 6 | `IngameUIs/WL_HUD/HUD_BottomMenu` | `IngameUIs/WL_HUD/HUD_BottomMenu` | off | **off** | **on** |
| 7 | `IngameUIs/Stage/exit` | `IngameUIs/Stage/exit` | off | **off** | **on** |
| 8 | `IngameUIs/Stage/btn_setting` | `IngameUIs/Stage/btn_setting` | off | **off** | **on** |
| 9 | `IngameUIs/MonsterSimpleInfo` | `IngameUIs/MonsterSimpleInfo` | off | **off** | **on** |
| 10 | `IngameUIs/IngamePetCard` | `IngameUIs/IngamePetCard` | off | **off** | **on** |
[PASS] 스테이지 중 전부 SetActive(false) — 11/11
[PASS] 이탈 시 전부 켜진 값으로 복원 — 11/11
(유지) IngameUIs/BattleUI activeSelf=True
(유지) Common/MyInfoUI activeSelf=True
(유지) IngameUIs/WL_HUD/WL_BossHpBar activeSelf=True
(유지) IngameUIs/WL_HUD/WL_KillChainText activeSelf=True
(유지) IngameUIs/WL_HUD/WL_LootToast activeSelf=True
(유지) IngameUIs/WL_HUD/WL_HitVignette activeSelf=True
(유지) IngameUIs/WL_HUD/WL_ReviveDialog activeSelf=True
[PASS] 유지 목록 7개 전부 실존 — 없음 0
유지 확인 7개 (조이스틱·스킬 패드 BattleUI · HP/MP MyInfoUI · 813 WL HUD 요소)
[PASS] 원본 NewGameUI.prefab 파일 무변경 — 길이 5361935B(=5361935) 수정시각 17:05:53(=17:05:53)
(참고) 미리보기 사본 dirty=True — 런타임 노드는 HideFlags.DontSave 라 저장해도 굽히지 않는다(813y 규약)
── ⑤ 클리어 화면 — StageCleared → 813q RunResultUI (기준서 §F-1)
[PASS] Damaged(victim=null)는 피격으로 세지 않는다 — 실측 0
[PASS] 피격 3회 집계 — 실측 3
[PASS] 최대 연쇄 = 5(3 은 갱신 안 함) — 실측 5
[PASS] StageCleared 수신 1
[PASS] 결과 화면 표시 — 실측 open=True
[PASS] 결과창 스테이지 모드 on
[PASS] 제목 = "스테이지 1 클리어!" — 실측 "스테이지 1 클리어!"
본문 =
스테이지 1 클리어!
클리어 시간 : 00:35
처치 : 8 / 8
엘리트 처치 : 0
최대 연쇄 : 5
피격 / 물약 : 3회 / 0개
재도전 : 1회
[PASS] 행 6개 — 실측 6
[PASS] 피격 3회 → 무피격 배지 없음 — 실측 False
배치: box size(860.00, 1080.00) 행틀=11 스테이지모드=True 버튼=[다음 스테이지](True) [로비로] 배지=False unitsPerPx=1.0000
[PASS] 🔴 병행 RunEnded(Win) 로 결과창 중복 표시 0 — 실측 +0 · 억제 1회
[PASS] 제목이 「런 클리어!」로 덮이지 않았다 — "스테이지 1 클리어!"
[PASS] 피격 0회 → 무피격 배지 — 실측 True "무피격 클리어!"
[PASS] 마지막 스테이지 제목 — 실측 "전 스테이지 클리어!"
마지막 스테이지 배치: box size(860.00, 1080.00) 행틀=11 스테이지모드=True 버튼=[처음부터](True) [로비로] 배지=True unitsPerPx=1.0000
본문(보스 스테이지) =
전 스테이지 클리어!
클리어 시간 : 00:55
처치 : 15 / 15
엘리트 처치 : 0
최대 연쇄 : 0
피격 / 물약 : 0회 / 0개
재도전 : 2회
무피격 클리어!
── ⑥ 실패 팝업 — StageFailed → 813z ReviveDialog 2버튼 (기준서 §E)
[PASS] StageFailed 수신 1
[PASS] 실패 팝업 표시 — 실측 open=True
[PASS] ReviveDialog 스테이지 모드 on
[PASS] 공용 Popup 미사용(2버튼 불가) — 실측 False
배치: 폴백 팝업 box size(1351.11, 675.56) 버튼=2 [다시 도전] [로비로] unitsPerPx=1.7778
[PASS] 두 번째 버튼 노출 — 실측 True
[PASS] 버튼 = [다시 도전] [로비로] — 실측 [다시 도전] [로비로]
[PASS] 시간 초과 문구 + 남은 적 3 — 실측 "시간 초과! / 남은 적 3마리"
[PASS] 813z 3층 방어 유지 — SO sortingOrder 60 · 최상단 재보장 2회 · 실측 게터=-1(부모 계층 비활성 → Unity 가 overrideSorting 되돌림 · 814d §4)
[PASS] 실패 시점에 결과창 0
[PASS] 🔴 병행 RunEnded(Timeout) 억제 → 결과창 안 뜸 — 실측 open=False 억제 1회
[PASS] 사망 문구 구분 — 실측 "쓰러졌습니다. / 다시 도전하시겠습니까?"
[PASS] 사망 실패도 2버튼 모드 — 실측 True
클릭 [다시 도전] : 다시 도전 — StageDirector.Retry() 전달
[PASS] [다시 도전] → StageDirector.Retry() 1회 — 실측 +1
[PASS] 누르면 팝업 닫힘 — 실측 open=False
클릭 [로비로] : 로비로 — 전달
[PASS] [로비로] → StageDirector.ToLobby() 1회 — 실측 +1
[ReviveDialog] deaths=0 shows=3 confirms=1 대기중=False 공용팝업사용=False 폴백표시=False open=False 813i(ReviveRequested)=False 브리지=False
본문="쓰러졌습니다. / 다시 도전하시겠습니까?"
[815d] 스테이지모드=False 버튼=[부활] (두번째 없음) · 핸들러 primary=True secondary=True · 클릭 다시도전=1 로비=1 · 표시 3회
공용 Popup.Ins=없음(에디트 모드/씬 미로드)
최상단 = sortingOrder -1(SO 60) · 맨뒤형제=True · 재보장=6회 · 탈취감지=0 · 승격=False · 공용팝업닫음=0 · raycaster=True · blocksRaycasts=False
워치독 = 0.0s · 무시disable=True · 최상단ON=True 주기=0.50s · DeathFlow 발동=0회 대기=0.00s
폴백 box size(1351.11, 675.56) pos(0.00, 0.00) ok="부활" okName=WL_btn_ok
설정 enabled=True 공용팝업=True delay=2s key=0 비용="무료"
── ⑦ 클리어 화면 버튼 → StageDirector.Next() / ToLobby()
클릭 [다음 스테이지] : 다음 스테이지 — StageDirector 호출
[PASS] [다음 스테이지] → StageDirector.Next() 1회 — 실측 +1
[PASS] 누르면 결과창 닫힘
클릭 [로비로] : 로비로 — StageDirector 호출
[PASS] [로비로] → StageDirector.ToLobby() 1회 — 실측 +1
로비 동작: 로비로 — ReturnToLobby (toLobbyCallsReturnToLobby=1)
클릭 [처음부터] : 다음 스테이지 — StageDirector 호출
[PASS] [처음부터] → StageDirector.Enter(0) 1회 — 실측 +1
[PASS] 이탈 → RunHud 스테이지 모드 off
[PASS] 이탈 → 결과창 스테이지 모드 off
[PASS] 이탈 → 실패 팝업 모드 off(813z 원래 1버튼)
[StageUiBridge] 구독=True inStage=False 스테이지=3 · 입장 3 카운트 0 시작 0 적수 3 시간 0 클리어 3 실패 0 이탈 2
실측 — 피격 0회 · 물약 0개(시작 스냅 0 / 현재 0) · 최대 연쇄 0(진행중 0)
메뉴 — 숨김 3회 / 복원 2회 / 재보장 0회(도로 끈 것 0건 · 주기 0.50s) · 지금 숨긴 것 0건 · 못 찾은 경로 0
버튼 — 다시도전 0 다음 2 처음부터 0 로비 1 · 로비모드=ReturnToLobby · toLobbyCallsReturnToLobby=1
설정 enabled=True hud=True 메뉴숨김=True 결과=True 실패팝업=True · 마지막 로그 = 이탈(probe lobby) — 로비=True · 메뉴 복원 0건
── ⑧ GC — 같은 값 100틱 = 표시 쓰기 0회
[PASS] 같은 초 100틱 → 타이머 쓰기 0회 — 실측 +0
[PASS] 같은 수 100틱 → 남은 적 쓰기 0회 — 실측 +0
[PASS] 같은 스테이지 → 라벨 쓰기 0회 — 실측 +0
ΔGetTotalMemory = 0 B (에디터 TMP 문자열 포함 · 빌드에는 없는 줄)
── ⑨ C8 — WLStageUiSettings 를 끄면 813q/813z 가 원래대로
[PASS] RuntimeDisabled → Enabled=false
[PASS] 축 off → 스테이지 모드 0 — 실측 False
[PASS] 축 off → 메뉴 숨김 0 — 실측 0
[PASS] 축 off → 결과창 스테이지 모드 0
[PASS] 축 off → 실패 팝업 2버튼 0(813z 원래 부활 팝업)
[PASS] 813q WLRunUiSettings.Enabled 불변 = True
[PASS] 813q 런 HUD 원래대로 — 실측 "04:00" "존 1"
[PASS] 복구 → Enabled=true
RESULT PASS (pass=94 fail=0)