리플렉션 - 프로그램이 실행시간동안 자기 자신을 조사하는 기능
클래스, 함수, 멤버 변수, Enum타입을 확인하고 정보 수집 / 질의를 통해 조사한다.
(데이터 직렬화나 가비지 컬렉션에서도 사용되는 기술)
C++는 리플렉션 기술을 지원하지 않으나, 언리얼이 자체적으로 지원한다.
이것이 언리얼 프로퍼티 시스템이다.
#include "~~~~~.generated.h" 를 통해 리플렉션이 이 파일을 포함해야 한다고 선언
UFUNCTION
UPROPERTY
UCLASS
UENUM
USTRICT
이런 매크로를 추가하여 언리얼 프로퍼티 시스템이 해당 (변수 함수 Enum 등)을 인식하게 한다.
UPROPERTY(EditDefaultsOnly, Category=Pawn)
블루프린트에서 어떻게 접근할 수 있는지, Category분류는 무엇인지에 대한 정보를 담을 수 있다.
그리고 이러한 매크로를 추가한다면 Unreal에서 자동으로 메모리 관리를 진행한다.
마치 가비지 컬렉션처럼
리플렉션을 사용하는 이유
→ 게임 엔진에게 매크로를 통해 정보를 넘겨줄 수 있다.
→ 멀티 게임에서 서버로 정보를 보내는 네트워크 리플리케이션이 가능해짐
→ 메모리 관리
https://www.unrealengine.com/ko/blog/unreal-property-system-reflection
👾 UStruct , UObject , UClass (0) | 2024.02.07 |
---|---|
언리얼 형변환(과 CPP 형변환 , Cast) (0) | 2024.02.07 |
[Unreal Engine 5 : C++] 캐릭터를 따라 회전하는 물체 만들기 (0) | 2024.02.06 |
Unreal 소스 빌드 중 SetUp.bat에서 문제가 생긴다면 (0) | 2024.01.04 |
[ProjectDoll : 미정] 개발일지 23/08/22 - Interactable Object의 상호작용 (0) | 2023.08.23 |
댓글 영역