
카운트 다운 시간 표시하기 이제 print string을 통해 표현했던 것을 위젯으로 나타내볼 것이다. 이를 위해 그래프에서 다시 디자이너로 돌아가서 텍스트 블록에 대해 변수 여부를 체크해주어야 한다. 이러면 이제 해당 텍스트 블록에 대해 float 변수 카운트 다운과 같이 변수로서 접근이 가능해진다. 해당 변수를 끌어와서 Get을 해주고, 해당 핀에서 끌어보면 해당 변수에 대한 Set 함수를 얻을 수 있다. 이제 이를 통해 원하는 텍스트 할당이 가능하고, 실행 핀을 통해서 원하는 숫자로 Switch on Int 함수에서 값 연결이 가능하다. 나머지 값들도 전부 print string을 삭제하고 위와 같이 바꿔주자. 현재 상태에서 출력해보면 숫자 1과 2가 왼쪽으로 치우처서 출력이 된다. 이는 기본 정렬..

카운트다운 타이머 게임이 시작되는 것을 알 수는 있지만, 몇 초 후에 시작되는 지는 정확히 알 수 없다. 이를 위해 얼마나 더 기다려야 하는지 시작 딜레이 즉 카운트 다운를 위젯에 띄워주도록 하자. 우선 기존 위젯 블루프린트에서 우측 상단의 그래프를 눌러주면 이벤트 그래프 창으로 넘어갈 수 있다. 그리고 카운트 다운을 위한 float 변수를 하나 추가해주자. 컴파일을 하고 나면 맨 아래 기본값에서 값 수정이 가능해진다. 이제 이를 이용하여 매틱마다 카운트 다운을 출력해보자. Event Tick에 있는 Delta Time을 이용하여 매 프레임마다 카운트 다운의 값을 감소시켜가며 출력하게 된다. 매 프레임의 시간이 짧으므로, 매우 촘촘한 간격으로 출력되는 모습을 볼 수 있다. 우리가 원하는 건 1, 2, 3..

게임 시작 위젯 게임이 시작되기에 앞서 3초 간의 딜레이를 가지고 탱크가 움직이게 된다. 완성도를 위해 이를 위젯을 이용하여 게임 준비 시간임을 알려주어 보자. 마찬가지로 게임모드에서 해당 함수를 구현하게 된다. 해당 함수는 BlueprintImplementableEvent인데, 이는 C++에서 호출되는 C++ 함수지만 실제 기능은 블루프린트에서 구현한다는 것을 의미한다. 블루프린트에서 다뤄야하므로, private에서 선언은 불가능하다. 이제 기능 자체는 블루프린트에서 다루므로, 단순히 해당 함수가 실행되는 위치만 지정해준다. 이제 언리얼로 돌아가서 위젯 블루 프린트를 작성해주자. 이제 해당 위젯 블루프린트에서 우선 캔버스 패널을 생성해주자. 캔버스 패널을 통해 화면상 원하는 위치에 위젯 요소 배치를 하..

게임 시작 게임을 시작하자마자 바로 플레이 되는 것은 다소 부자연스러울 수 있다. 따라서 게임 시작하기에 앞서 딜레이를 주고, 일정 딜레이를 가진 이후에 본격적인 게임이 시작되도록 해보자. 먼저 딜레이를 위한 변수와, 해당 기능을 위한 함수를 선언해주자. 해당 내용들은 게임모드에 대한 이야기이므로, 게임 모드 클래스에서 선언 및 구현하게 된다. 해당 함수는 게임이 시작할 때 실행되므로 BeginPlay에서 호출하게 된다. 기존 BeginPlay 안에는 Tank와 Tank에 대한 컨트롤러를 얻는 과정이 있다. 해당 기능 또한 우리가 구현할 함수에 합쳐주었다. 먼저 딜레이 시간 동안은 탱크가 움직일 수 없다. 우리는 이를 SetPlayerEnableState 함수를 따로 구현하여 설정을 해준 적이 있다. 여..