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의 스테이지 선택 버튼과 연결
'StrikForge 프로젝트 > 작업일지' 카테고리의 다른 글
| StrikForge 6일차 - 오늘 한 일 (0) | 2026.08.12 |
|---|---|
| StrikeForge 5일차 - 오늘의 한일 (0) | 2026.08.10 |
| StrikForge 4일차 - 오늘 한 일 (0) | 2026.08.06 |
| StrikForge 3일차 - 오늘 한 일 (0) | 2026.08.05 |
| StrikeForge 1일차 - 오늘 한 일 (0) | 2026.08.03 |