로컬 변수 (지역 변수)
우리가 여태 사용해온 변수들은 클래스 변수이다.
클클래스 변수는 클래스의 인스턴스가 있는 한 유지된다.
변수가 유지되는 기간을 스코프라 하며, 클래스의 인스턴스만큼 유지되는 것 이외에도 함수만큼 유지되는 경우도 있다.
로컬 변수는 후자에 해당하게 된다.
로컬 변수는 함수 내에서만 존재하고, 함수를 호출할 때 마다 초기화가 된다.
먼저 다음과 같이 값을 할당해보았다.
기존의 MyVector의 경우 매 프레임마다 Y 값을 계속 더해줌으로써 우측으로 이동했지만,
LocalVector의 경우 매 프레임마다 Z 값을 계속 더해줘도 위로 이동하지 않는다.
매 프레임마다 (1, 2, 3)의 위치로 초기화를 진행하고 Z 값을 1을 더해주는 것이기 때문에, Z 값을 더해준다 한들 다시 (1, 2, 3)의 위치로 돌아가기 때문이다.
이번엔 LocalVector를 이용해 위치를 지정해보자.
위의 코드를 컴파일하고 실행하면 어떻게 동작할까?
직접 실행을 해보면 전과 같이 우측으로는 이동하지만 위로는 이동하지 않는 것을 볼 수 있다.
로컬변수로 할당하는 MyVector의 값은 매 프레임마다 Y값이 증가하지만, Z 값은 그대로이므로 여기에 Z 값을 추가로 더해줘봤자 다시 MyVector의 Z 값으로 돌아갈 뿐이다.
하지만 변경사항이 아에 없는 것은 아니다.
이를 쉽게 확인하기 위해 LocalVector의 Z 값에 100을 더해줘보자.
이제 실행을 해보면 기존 위치보다 Z 값이 100더 높은 상태를 유지하며 오른쪽으로 이동하는 모습을 볼 수 있다.
매 프레임마다 LocalVector의 값을 MyVector로 초기화함에 따라 MyVector의 Z 값으로 초기화되는 것은 맞지만,
이후 Z 값을 100을 더해준 상태에서 위치를 반환한 이후에 돌아가기 때문에 Z 값이 100 상승한 상태를 유지하게 된다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-14 (0) | 2024.03.07 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-13 (0) | 2024.03.07 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-11 (0) | 2024.03.06 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-10 (0) | 2024.03.05 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-9 (0) | 2024.03.05 |