StrikForge 프로젝트/작업일지

StrikeForge 오늘 한 일 2일차

editor66484 2026. 8. 4. 21:48

TIL — GameInstance 맵 전환 및 Stage DataTable 구성

오늘 한 일

  • 프로젝트에 추가된 GameInstance, DataTableManager, 건물·인터페이스 코드 확인
  • 공용 로그 매크로 SFLog.h 생성
  • GameMode와 GameState의 UE_LOG를 SF_LOG 형태로 정리
  • 테스트용 타이틀·로비·인게임 Level 생성
  • GameInstance 기반 Level 전환 기능 구현
  • TSoftObjectPtr<UWorld>를 이용해 Level 참조
  • Level Blueprint에서 맵 이동 테스트 완료
  • Stage DataTable용 FSFStageData 구조체 생성
  • GameInstance와 Stage DataTable 연결

맵 전환 구조

TestTitle ↔ TestLobby ↔ TestInGame

GameInstance에 구현한 기능:

MoveToTitle()
MoveToLobby()
MoveToStage()
TravelToLevel()

UI가 완성되기 전까지 Level Blueprint의 키 입력으로 테스트했으며, 세 맵 사이의 이동이 정상 작동하는 것을 확인했다.

로그 매크로

반복되는 UE_LOG 코드를 줄이기 위해 다음 매크로를 구성했다.

SF_LOG
→ Output Log 출력

SF_SCREEN_LOG
→ 화면과 Output Log 동시 출력

GameMode와 GameState의 시작·종료 및 오류 로그에 적용했다.

Stage DataTable

최소 Stage Row 구조를 생성했다.

DisplayName
StageLevel

DataTable의 Row Name을 Stage ID로 사용한다.

예시:

Row Name    → Stage01
DisplayName → 테스트 스테이지
StageLevel  → TestInGame

GameInstance에 다음 내용을 추가했다.

EDataTableType::Stage
StageDataTable

에디터에서 Stage DataTable을 생성하고 BP_SFGameInstance에 연결했다.

다음 작업

  • SelectStage(StageRowName) 구현
  • 선택한 Row Name을 GameInstance에 저장
  • SFDataTableManager로 Stage Row 조회
  • 선택된 Stage의 StageLevel로 이동
  • 기존 직접 StageLevel 참조 정리
  • 추후 로비 UI의 스테이지 선택 버튼과 연결