If 문장
저번에 얼마나 갔는지 체크를 했으니 이제 너무 멀리가면 반대방향으로 갈 차례이다.
블루프린트에서는 브랜치 문을 통해 할 수 있으며, C++에서는 If문에 해당한다.
우선 얼마나 멀리가면 반대방향으로 갈지 기준으로 잡을 거리를 100으로 초기화해주었다.
이제 기존의 얼마나 움직였는지를 체크하는 DistanceMoved 변수를 이용하여 if 문을 작성해준다.
이때 DistacneMoved를 지역변수로 바꾸고, 헤더파일에서 선언했던 것을 지워주었다.
만약 움직인 거리가 기준 거리 100을 넘기면 속력에 음수를 붙혀 반대방향으로 향하도록 해준다.
이 상태에서 컴파일을 하고 실행해보면, 앞뒤로 움직이는 모습을 볼 수 있다.
하지만 문제점이 있는데, 그것은 현재 플랫폼이 시작점을 조금 지나치며 움직인다는 것이다.
현재 StartLocation은 13770이다.
여기서 100만큼 이동하면 방향을 반대로 바꾸게 된다.
이때 CurrentLocation은 13870이다.
여기서 방향이 반대로 가기 때문에 DistanceMoved의 값이 줄어드게 된다.
해당 DistanceMoved 값이 100을 넘어설때 방향을 전환하는데, 값이 줄어들다가 다시 늘어나기 때문에 다음 위치가 13670이 될 때 다시 DistanceMoved 값이 100이 되어 방향을 전환하게 된다.
우리가 원하는 것은 100만큼 이동했을 때 또 해당 위치를 기준으로 100만큼 이동하는 것이다.
하지만 현재 상태는 200씩 이동하고 있는 상태이다.
이를 개선하기 위해 StartLocation 위치를 바꿔야 한다.
방향이 바꾸게 되는 시점의 CurrentLocation을 StartLocation으로 정해주면 방향이 전환되는 기점으로 100만큼 이동할 때 마다 방향전환이 이루어진다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-19 (0) | 2024.03.10 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-18 (0) | 2024.03.10 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-16 (0) | 2024.03.08 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-15 (0) | 2024.03.08 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-14 (0) | 2024.03.07 |