티스토리 뷰
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-12
게임개발기원 2024. 3. 19. 18:32역참조 & 화살표(->) 연산자
이번엔 역참조를 통해 액터에 어태치된 무버 컴포넌트가 액터의 이름이나 위치 등의 액터 프로퍼티를 호출하는 방법을 알아본다.
주소값을 알아보는 것도 좋지만, 실제 액터 자체를 가지고 작업해야하는 경우도 적지 않다.
우리가 포인터를 표현할 때 사용했던 *를 변수 탑과 함께 사용하면 포인터가 되지만,
포인터 표현식 앞에 별표를 사용하면 변수의 주소값을 구할 수 있다.
다음 예제를 살펴보자.
포인터 변수 YourFloat에 MyFloat의 주소를 가리키도록 하였다.
다시 FlofatVlaue에 YourFloat앞에 *를 표시함으로써 해당 변수의 주소값, 즉 MyFloat의 원래 값인 5를 저장하게 된다.
이렇게 주소를 통해 값에 접근하는 것 이것이 바로 역참조이다.
여기서 FloatVlaue는 굳이 선언해줄 필요가 없다.
바로 *YourFloat의 값을 출력해도 문제없이 같은 결과가 나온다.
이제 역참조를 이용해 액터의 이름과 위치를 알 수 있다.
먼저 액터의 이름을 알아보자.
이름을 얻는 함수는 GetActorNameOrLabel()이다.
마찬가지로 역참조를 통해 주소값에 접근한다. (*Owner)
여기에 점 연산자를 통해 위 함수를 사용해주면 무사히 이름을 얻게 된다.
이렇게 얻은 이름은 FString 타음 변수에 저장해서 출력하게 된다.
((*Owner).GetActorNameOrLabel())
위 코드를 더욱 간단하게 나타낼 수 있다.
여기서 사용되는 것이 화살표 연산자이다.
위와 같이 더 간단해진 코드를 볼 수 있다.
이제 위치를 알아보자.
위치의 경우 우리가 많이 사용하였던 GetActorLocation() 함수를 통해 알 수 있다.
먼저 위치의 경우 FVector 타입이기 때문에 Owner->GetActorLocation()을 통해서 먼저 FVector 타입으로 저장을 해주고,
이어서 FString으로 전환해주기 위해 저장해둔 변수에 ToCompactString() 함수를 통해 타입을 바꿔준다.
이후 문자열로 이름과 위치를 로그에 출력해보자.
문제없이 Mover 컴포넌트가 붙어있는 액터의 이름과 위치가 나오는 것을 볼 수 있다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-14 (0) | 2024.03.21 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-13 (0) | 2024.03.19 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-11 (0) | 2024.03.19 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-10 (0) | 2024.03.18 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-9 (0) | 2024.03.18 |