Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-14
함수 반환 값
이번에는 저번에 작성했던 의사코드를 구현을 하게 된다.
기존에 작성했던 코드를 지우고 함수 반환 값을 이용하여 구현을 시도 한다.
함수 반환 값을 이해하기 전에 잠깐 다음 두 가지 용어에 대한 개념을 이해할 필요가 있다.
첫 번째는 표현식(Expression)으로 값을 생성하는 코드 조각에 해당한다.
다음으로 문(Statement)으로 수행되어야할 동작을 의미한다.
이 두 가지는 관련되어있으며, 거의 항상 표현식은 동작을 실행시켜야할 때 코드 조각의 값을 계산하기 위해 포함된다.
하지만 반대로 문은 통해 값이 나타나지는 않는다.
다음 표현식의 예시를 살펴보자.
MyVector
LocalVector.Z + 100
GetActorLocation()
C++에서 MyVector를 입력하면 해당 변수에 무엇이 포함되어있든 간에 값이 존재하니 표현식이다.
마찬가지로 LocalVector.Z도 Z에 있는 값을 가져오고, 이후 100을 더한 값을 생성하기 때문에 표현식이다.
마지막 GetActorLocation은 함수이지만 해당 함수에서 반환된 값을 가져오므로 표현식이다.
다음 예시의 경우에는 표현식이 아니다.
FVector LocalVector = MyVector;
위 예시는 값이 없으며, 단순히 수행해야할 동작을 알리는 것이다.
다만 MyVector는 값이 존재하며 표현식이다.
따라서 앞서 설명했던 것 같이 문안에 표현식이 포함되는 것을 볼 수 있다.
이제 의사코드를 구현해보자.
앞으로 이동하기 위해 우선 현재 위치를 함수를 통해 얻었다.
그리고 위치를 설정하는 함수를 알기 때문에 위에서 얻은 위치를 토대로 설정해주었다.
여기까지 작성했으면 전에 작성했던 코드들은 필요가 없다.
따라서 다 지워주고, 마찬가지로 헤더 파일에서도 관련된 값들을 지워준다.
현재 상태를 컴파일 하면 단순히 원래 위치에 다시 위치를 할당하는 것을 반복할 뿐이다.
우리가 원하는 것은 앞으로 이동하는 것이므로 X 값을 얻어 +1을 해주면 된다.
이제 컴파일해보고 실행해보면 앞으로 계속해서 이동하는 플랫폼을 볼 수 있다.
다만 원래 위치인 (0, 0, 0)에서 실행되므로 3인칭 캐릭터의 위치를 참고하여 근처로 위치를 잡아주고 시작할 필요가 있다.