반응형
👨💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.
언리얼 엔진 5 에서 사용되는 매크로는 어떤 것들이 있는지 물어봤습니다.
질문 >
언리얼 엔진 5에서 사용되는 매크로는 어떤 것들이 있나요?
답변 >
언리얼 엔진 5에서 사용하는 주요 매크로들은 C++ 코드와 언리얼 엔진의 리플렉션 시스템, 블루프린트 통합, 메모리 관리 등과 상호작용할 수 있게 해줍니다. 이 매크로들은 언리얼 엔진의 객체 시스템과 네트워크 복제, 이벤트 처리 등을 쉽게 구현할 수 있도록 지원합니다.
주요 매크로 종류:
- UCLASS:
- 클래스를 언리얼 엔진의 객체 시스템과 통합시키기 위해 사용됩니다. UCLASS 매크로는 C++ 클래스가 엔진의 리플렉션 시스템에서 인식되도록 하며, 블루프린트나 가비지 컬렉션에서 사용할 수 있게 합니다.
UCLASS() class MYGAME_API AMyActor : public AActor { GENERATED_BODY() };
- USTRUCT:
- C++ 구조체를 언리얼 엔진의 리플렉션 시스템에 노출시킵니다. 이를 통해 구조체가 블루프린트에서 사용되거나 직렬화될 수 있습니다.
USTRUCT(BlueprintType) struct FMyStruct { GENERATED_BODY() UPROPERTY(EditAnywhere, BlueprintReadWrite) int32 MyValue; };
- UENUM:
- 열거형(enum)을 언리얼 엔진의 리플렉션 시스템에서 사용할 수 있도록 만듭니다. 이를 통해 열거형이 블루프린트에서 선택 가능하게 됩니다.
UENUM(BlueprintType) enum class EMyEnum : uint8 { Option1 UMETA(DisplayName = "Option 1"), Option2 UMETA(DisplayName = "Option 2") };
- UPROPERTY:
- 클래스 내의 변수에 다양한 메타데이터를 부여하여, 블루프린트 노출, 직렬화, 네트워크 복제 등의 기능을 사용할 수 있게 합니다. UPROPERTY는 변수의 가비지 컬렉션과 관련된 메모리 관리도 담당합니다(Unreal Engine)(Puget Systems).
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats") int32 PlayerHealth;
- UFUNCTION:
- 특정 함수에 메타데이터를 부여하여 블루프린트에서 호출하거나 네트워크 복제를 가능하게 만듭니다. 이를 통해 블루프린트에서 C++ 함수를 호출하거나, 서버-클라이언트 간 네트워크 복제를 쉽게 설정할 수 있습니다(Puget Systems).
UFUNCTION(BlueprintCallable, Category = "Player") void TakeDamage(int32 Damage);
- GENERATED_BODY:
- 이 매크로는 클래스나 구조체에 필요한 기본적인 코드 블록을 자동으로 생성해 줍니다. UCLASS, USTRUCT, UENUM에서 주로 사용되며, 언리얼 엔진의 리플렉션 시스템과의 통합을 위한 필수 코드입니다.
UCLASS() class MYGAME_API AMyActor : public AActor { GENERATED_BODY() // 필수 코드 블록을 생성 };
- UMETA:
- UENUM이나 UPROPERTY에서 사용되며, 특정 값에 대한 메타데이터를 추가할 수 있게 해줍니다. 예를 들어, 열거형 값을 블루프린트 에디터에서 다르게 표시하려면 UMETA(DisplayName = "표시 이름")을 사용할 수 있습니다.
UENUM(BlueprintType) enum class EGameMode : uint8 { GM_Deathmatch UMETA(DisplayName = "Deathmatch"), GM_CaptureTheFlag UMETA(DisplayName = "Capture the Flag") };
그 외 주요 매크로:
- UPROPERTY와 UFUNCTION 외에도, UINTERFACE와 DELEGATE 등 다양한 매크로들이 언리얼 엔진의 기능을 확장하는 데 사용됩니다. 특히, UINTERFACE는 인터페이스를 리플렉션 시스템과 통합해 다양한 클래스 간 상호작용을 가능하게 합니다(Unreal Engine)(Puget Systems).
이러한 매크로들은 언리얼 엔진의 다양한 시스템과 C++ 코드를 쉽게 통합하여, 복잡한 게임 로직을 보다 직관적으로 개발할 수 있게 돕습니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
🎬 유튜브 채널 🎬
🎬 치지직 채널 🎬
반응형
'프로그래밍' 카테고리의 다른 글
👨💻 [Unreal] 언리얼 엔진의 라이프 사이클 함수는 어떤 것들이 있나요? (4) | 2024.10.11 |
---|---|
👨💻 [Unreal] 언리얼 엔진 5 에서 리플렉션 시스템은 무엇인가요? (0) | 2024.10.09 |
👨💻 [Unreal] 언리얼 엔진 5.4 에서 비주얼 스크립팅은 무엇인가요? (0) | 2024.10.09 |
👨💻 [MFC] invalid PKCS #7 block padding found 오류가 발생하는 이유는 무엇인가요? (0) | 2024.10.04 |
👨💻 [Unreal] 언리얼 엔진에서 UFUNCTION 은 어떻게 사용하나요? (0) | 2024.09.30 |