본문 바로가기

Unreal/Udemy 강의

Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 5-14

이동 속도

기존 탱크의 이동 속도가 너무 느리게 느껴져서 이번 강의에서 이를 개선하는 작업을 해준다.

이를 위해 우선 뷰포트에서 FPS 표시해주고 이를 살펴보자.

 

위와 같이 FPS 표시하면 좌측에 현재 FPS가 나오게 된다.

해당 값을 자세히 보면, 플레이 하는 순간에 확 낮아지고, 수시로 조금씩 변동되는 것을 볼 수 있다.

지금은 다소 단순한 상태이기에 크게 차이는 없지만, 더 복잡해지고 무거워질수록 변동 값이 심해질 수 있다.

이러한 변동이 실제 이동에 영향을 미치기 때문에 전 섹션에서 다뤘던 델타타임을 이용하여 속도를 조절해야한다.

 

기존 베이스폰에서 Tick 함수를 보면 인자로 델타타임을 가지고 있지만, 탱크가 움직일 Move 함수에는 델타타임이 존재하지 않는다.

따라서 GetWorldDeltaSeconds 라는 함수를 통해 델타타임을 가져오게 된다.

인자로는 월드 오브젝트를 받는데, 여기서는 우리가 사용할 탱크를 전달하게 된다.

해당 함수는 UGameplayStatics에 속하기에 해당 헤더파일을 인클루드해줄 필요가 있다.

그리고 private에 Speed 변수도 설정해주자.

초기값으로 200을 설정하고, 언리얼에서도 자유롭게 값을 바꾸며 테스트하기 위해서 EditAnywhere로 선언하였다.

 

 

이제 기존 Value에 스피드와 델타타임을 곱해주자.

 

기존 보다 빨라진 상태의 탱크를 확인할 수 있으며, EditAnywhere로 선언했기에 언리얼에서도 자유롭게 스피드를 바꿀 수 있다.