-
[Unreal] UCLASS와 UPROPERTY 매크로프로그래밍/Unreal 2024. 7. 26. 19:05728x90반응형
언리얼 엔진에서
UCLASS()
와UPROPERTY()
매크로는 언리얼 오브젝트 시스템의 핵심적인 요소입니다. 이들 매크로는 언리얼 엔진의 리플렉션 시스템을 통해 클래스와 클래스 멤버를 관리하고, 블루프린트, 시리얼라이제이션, 에디터 기능 등을 사용할 수 있도록 합니다.UCLASS()
UCLASS()
매크로는 클래스 선언 앞에 사용되어, 해당 클래스가 언리얼 오브젝트 시스템에 의해 관리될 것을 나타냅니다.UCLASS()
매크로를 사용하면, 클래스가 다양한 엔진 기능을 활용할 수 있습니다. 예를 들어, 블루프린트에서 사용할 수 있게 되거나, 특정 속성을 가진 메타 데이터를 지정할 수 있습니다.예시
UCLASS() class MYPROJECT_API AMyActor : public AActor { GENERATED_BODY() public: // 클래스의 함수와 멤버 변수를 선언합니다. };
여기서
GENERATED_BODY()
매크로는 클래스의 기본 생성자 및 다른 필수 코드를 자동으로 생성합니다.UPROPERTY()
UPROPERTY()
매크로는 클래스 멤버 변수 앞에 사용되어, 해당 변수가 언리얼 엔진의 가비지 컬렉션, 시리얼라이제이션, 복제, 블루프린트 접근 등의 엔진 기능과 상호작용할 수 있게 합니다.예시
UCLASS() class MYPROJECT_API AMyActor : public AActor { GENERATED_BODY() public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Gameplay") int32 MyVariable; };
이 예시에서
UPROPERTY()
매크로는MyVariable
변수를 에디터에서 편집 가능하고, 블루프린트에서 읽고 쓸 수 있게 하며, "Gameplay" 카테고리에 속하도록 설정합니다.UPROPERTY() 매크로의 주요 속성들
EditAnywhere
: 에디터에서 변수의 값을 수정할 수 있습니다.BlueprintReadWrite
: 블루프린트에서 읽고 쓸 수 있습니다.BlueprintReadOnly
: 블루프린트에서 읽기만 가능합니다.VisibleAnywhere
: 에디터에서 값을 볼 수 있지만 수정할 수 없습니다.Transient
: 변수는 시리얼라이즈되지 않으며, 저장되지 않습니다.Replicated
: 변수는 네트워크를 통해 복제됩니다.
UCLASS() 매크로의 주요 메타데이터
Blueprintable
: 블루프린트에서 이 클래스를 기반으로 새로운 블루프린트를 만들 수 있습니다.BlueprintType
: 블루프린트에서 이 클래스의 변수를 선언할 수 있습니다.NotBlueprintable
: 블루프린트에서 이 클래스를 기반으로 새로운 블루프린트를 만들 수 없습니다.HideCategories
: 에디터에서 특정 카테고리를 숨깁니다.ShowCategories
: 에디터에서 특정 카테고리를 표시합니다.
이러한 매크로는 언리얼 엔진의 강력한 기능을 활용하는 데 매우 중요하며, 이를 잘 활용하면 효율적인 게임 개발이 가능합니다.
728x90반응형'프로그래밍 > Unreal' 카테고리의 다른 글
[Unreal] 엔진에서 제공하는 Movement Component (0) 2024.07.27 [Unreal] Visual Studio Intelli Sense가 느릴 때 해결법 (0) 2024.07.26