2026.07.22

오늘 한 일


1. 내 히트 판정을 내가 잘못 설명하고 있었다

문서 쓰다가 두 번 정정한 부분.

소켓 2개  = 칼날 시작점·끝점 → 트레이스 "범위"를 잡는 기준점
실제 트레이스 = 각 소켓이 이전 프레임 위치 → 현재 프레임 위치

핵심은 공속이 빨라질수록 선이 길어져서 자동으로 대응된다는 것. 문제가 커지면 해법도 같이 커지는 구조라서 옳은 해결이었던 거고. "소켓 두 지점을 잇는 라인"이라고 쓰면 시간 축이 아니라 공간 축 얘기가 되어 완전히 다른 설명이 된다.

구현한 지 두 달이면 내가 뭘 했는지도 흐려진다. 문서로 쓰면서 걸러짐.

2. 같은 파일 안에 정답이 있는데 한쪽만 틀렸다 (실제 버그)

AttackSystemComponent — 히트스탑 타이머 핸들이 컴포넌트 멤버 하나다.

스윙 한 번에 적 A·B 피격
  → A 타이머 설정 → B가 SetTimer로 덮어씀 (A 복구 람다 폐기)
  → A는 CustomTimeDilation = 0 으로 영구 정지

HitSlow는 HitSlowTimers.FindOrAdd(UniqueID)로 대상별 분리를 이미 해놨다. 같은 파일에 정답이 있는데 히트스탑만 적용을 안 한 것. 1:1 테스트만 해서 안 걸렸다.

곁다리로 복구 람다가 WeakOwner 무효 시 early return이라, 플레이어가 죽으면 적이 정지 상태로 남는다. 둘의 복구는 독립시켜야 함.

3. 완성도는 신호를 안 보낸다

오늘 제일 크게 남은 문장.

신호
판정이 뚫림 눈에 보임 → 질문이 자동으로 생김
타격감이 밋밋함 안 보임 → "잘 돌아가는 걸로" 보임