StrikForge 프로젝트/작업일지

StrikForge 7일차 - 오늘 한 일

editor66484 2026. 8. 12. 21:43

오늘 진행한 작업

스테이지 승패 처리 점검

  • 적 메인 건물 파괴 시 Victory 처리
  • 플레이어 메인 건물 파괴 시 Defeat 처리
  • 패배 시 스테이지가 클리어 처리되지 않는 구조 확인
  • 승리한 경우에만 MarkStageCleared()가 호출되는 것 확인
  • 결과 UI가 없는 동안 승패 확정 후 로비로 자동 이동하도록 임시 처리

전투 대상 등록 확인

sf.DumpCombatTargets 콘솔 명령으로 전투 대상 등록 상태를 점검했다.

  • 플레이어 Nexus: Team 0
  • 테스트 전투유닛: Team 0
  • 적 Nexus: Team 1
  • Nexus가 핵심 건물로 등록되는 것 확인

지휘관 생성 및 이동 문제 해결

  • ProtoType 레벨 블루프린트에서 지휘관 생성 확인
  • 지휘관의 AI Controller와 NavMesh 설정 확인
  • 마우스 선택에 사용되는 Visibility 충돌 설정 점검
  • 지휘관 선택 후 지면 이동이 정상 작동하는 것 확인

전투유닛 이동 문제 점검

다음 항목이 정상인지 확인했다.

  • UnitAIController
  • Auto Possess AI
  • Max Walk Speed
  • NavMesh
  • Team Index
  • 전투 대상 등록

또한 sf.DrawCombatDebug 1이 표시되지 않은 원인을 확인했다. 전투유닛에 현재 타깃이 없을 경우 Advance() 이후 조기 반환되어 디버그 출력 코드까지 도달하지 않는 구조였다.

K키를 이용한 승패 테스트

ProtoType 레벨 블루프린트에 다음 테스트 흐름을 구성했다.

K 입력
→ Get All Actors Of Class
→ Nexus 선택
→ CoreObjectiveComponent 획득
→ Apply Combat Damage
→ 체력 0
→ 승패 판정
→ 로비 이동
  • K키 입력 자체는 정상 작동
  • Apply Combat Damage의 실행선이 누락되어 피해가 적용되지 않았던 문제 확인
  • 피해량을 크게 설정하여 Nexus 파괴 테스트 진행
  • Destroy Actor가 아닌 체력 기반 피해 처리를 사용해야 승패 판정이 호출되는 것 확인

패배 판정 테스트 성공

플레이어 Nexus를 파괴하여 다음 흐름을 확인했다.

CoreObjective Team 0 파괴
→ PlayerTeam 0과 일치
→ Defeat 판정
→ GameState 스테이지 종료

확인된 로그:

[CoreObjective] Team 0 핵심 건물 파괴
[SFGameMode] Core destroyed. DestroyedTeam: 0, PlayerTeam: 0
[SFGameState] Stage finished. Result: ESFStageResult::Defeat

트러블슈팅

K키 입력 후 피해가 적용되지 않음

원인:

  • Get All Actors Of Class까지만 실행선이 연결됨
  • Apply Combat Damage에는 데이터 핀만 연결되고 흰색 실행선이 연결되지 않음

해결:

Get All Actors Of Class 실행 출력
→ Apply Combat Damage 실행 입력

으로 연결했다.

GameMode 142번에서 실행 정지

원인:

  • 코드 오류가 아니라 142번 줄에 디버거 브레이크포인트가 설정됨
  • 실행이 해당 줄에서 정지하여 이후 MoveToLobby()까지 진행되지 않음

해결:

  • 해당 줄의 브레이크포인트 해제
  • 또는 F5로 실행 계속

원하지 않은 패배 결과 발생

원인:

  • Get All Actors Of Class 배열의 Index가 Team 0인 플레이어 Nexus를 가리킴
  • 배열 순서는 적·플레이어 팀 순서를 보장하지 않음

향후 개선:

For Each Loop
→ CoreObjectiveComponent
→ Get Team Index
→ Team Index == 1
→ 적 Nexus에만 피해 적용

방식으로 변경한다.

추후 작업

  • Team 1 Nexus 파괴 후 Victory 판정과 로비 이동 확인
  • 결과 UI 제작 후 임시 자동 로비 이동 제거
  • GameState.OnStageResultChanged를 PlayerController가 수신하도록 연결
  • PlayerController가 InGame UI에 승리·패배 결과 전달
  • 전투유닛의 실제 이동 요청 실패 원인 추가 점검
  • Advance() 상태에서도 전투 디버그 정보가 표시되도록 코드 위치 검토