0. 개요
코드를 이해하는 과정이 너무 길어져서 내일 과제 제출이지만 오늘 과제를 하게되었다.
1. 과제 내용
강의를 들으면서 만들었던 프로젝트에 기능 추가하는 것 이다.
필수 과제로는
1.스테이지마다 웨이브를 생성 해주기
2. HUD & 메뉴 UI 리뉴얼
이였다.
평소 과제와는 다르게 강의에서 만든걸 그대로 만들어야되어서 쉬운 것 같았지만
의외로 어려웠다.
먼저 과제라는 생각에 빨리 만들려했던 건지 과제를 그저 따라하기만 했다
그래서 과제를 따라하다가 가끔식 놓친 부분에서 오류가 생길 경우 난 그걸 찾지 못했었다.
그 문제를 찾으려고 영상 돌려고보고 뭐가 문제지 하면서 찾아보는 시간으로
너무 많은 시간이 흐르고 그냥 허무하게 끝날 과제 처럼 보였다.
결국 과제를 새로 만들면서 코드를 이해하고 다시 만드는 과정이 있어서 과제를 늦게 시작 하게 되었다.

먼저 아이템을 생성해주는 Spawnvolume에서 ItemDataTable이라는
DataTable을 사용하여 적용 하고 있었다.
DataTable이 많아지기 때문에 ItemDataTableInstance를 만들어줬다.
첫번째 시도는 DataTable을 TArray로 담아서 사용하는것이였다
하지만 웨이브는 3이고 처음 시작시 웨이브1이니 웨이브변경은 2번 일어나는데
또 다음레벨되면 초기화를 안하고 웨이브를 그대로 사용하기에 나중에를 생각해보니 레벨이 늘어날때마다 웨이브를 늘려서 웨이브를 관리하기 어려워진상태가 된다면 힘들 것이라 생각했다.
두번째시도는 FWaveDataTable이라는 구조체를 만들어서 그곳에서 데이터 테이블을 가지고 있게 해주는
블루프린트에서 설정해주는 방식을 채택했다.

GameStateBase에서 불려질 함수이다.
주석은 무시하고
지금 다시 분석하면서보니 좀더 잘할 수 있을 것 같다고 생각되는 감이 없지 않지만
게임 베이스에 있는 레벨을가져와서 웨이브에 맞게 바로 수정해준다.

GameStateBase에서 웨이브 바뀔때마다 실행시켜준다.

UGameplayStatic:: 은 해당 레벨? 에서 사용되는 정보값들을 가져올 수있는건가싶어서 검색해봤다. 게임플레이와 관련된 다양한 유틸리티 함수를 제공하는 정적(Static) 클래스 라고한다. 확실히 액터 찾기등도 있고 게임플레이에 필요한 기능을 쉽게 호출할 수 있다는 점에서 좋은 코드같다. |

길어보이지만 간단하게
플레이어 컨트롤러 찾고
위젯을 찾고
위젯에 Time이라는 텍스트를 찾는 다는것이다
만약 찾았다면
현재 LevelTimerHandle가 실행되기까지 걸리는 시간을 가져와서
남은시간을 표시하고
현재 시간이 만약 웨이브 시간보다적어질경우
다음 웨이브를 시작하는 경우이다.
여기서 왜 -1을 조건으로넣느냐면
이코드를 실행시 처음에는 바로웨이브가 진행되었었다 자꾸 -1이 나와서였다
그래서 이유를 알아보니
해당 타이머가 아직 불려지지않아서 그렇다고 한다.
마무리 이야기
앞으로는 개인작에 대해 좀 생각해보고 바로 만들어보려고한다
.
'TIL' 카테고리의 다른 글
2024- 02 - 12프로그래머스 연습 문제 대충 만든 자판 (0) | 2025.02.12 |
---|---|
2025- 02 - 10 기록 ( 언리얼 UFUNCTION 오류) (0) | 2025.02.10 |
2025 - 02- 07 기록 (프로그래머스 코딩테스트 연습 - 체육복 ) (0) | 2025.02.07 |
2025 - 02 - 06 기록 (0) | 2025.02.06 |
2025- 02- 05 공부 벡터에서 정규화를 사용하는 이유 (0) | 2025.02.05 |