본문 바로가기
프로그래밍

👨‍💻 [Unreal - ChatGPT] 언리얼 엔진 5에서 사용되는 매크로는 어떤 것들이 있나요?

by 밝음의기둥 2024. 10. 9.
반응형

👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

언리얼 엔진 5 에서 사용되는 매크로는 어떤 것들이 있는지 물어봤습니다.


질문 >

언리얼 엔진 5에서 사용되는 매크로는 어떤 것들이 있나요?

답변 >

언리얼 엔진 5에서 사용하는 주요 매크로들은 C++ 코드와 언리얼 엔진의 리플렉션 시스템, 블루프린트 통합, 메모리 관리 등과 상호작용할 수 있게 해줍니다. 이 매크로들은 언리얼 엔진의 객체 시스템과 네트워크 복제, 이벤트 처리 등을 쉽게 구현할 수 있도록 지원합니다.

주요 매크로 종류:

  1. UCLASS:
    • 클래스를 언리얼 엔진의 객체 시스템과 통합시키기 위해 사용됩니다. UCLASS 매크로는 C++ 클래스가 엔진의 리플렉션 시스템에서 인식되도록 하며, 블루프린트나 가비지 컬렉션에서 사용할 수 있게 합니다.
    UCLASS()
    class MYGAME_API AMyActor : public AActor
    {
        GENERATED_BODY()
    };
    
    
  2. USTRUCT:
    • C++ 구조체를 언리얼 엔진의 리플렉션 시스템에 노출시킵니다. 이를 통해 구조체가 블루프린트에서 사용되거나 직렬화될 수 있습니다.
    USTRUCT(BlueprintType)
    struct FMyStruct
    {
        GENERATED_BODY()
    
        UPROPERTY(EditAnywhere, BlueprintReadWrite)
        int32 MyValue;
    };
    
    
  3. UENUM:
    • 열거형(enum)을 언리얼 엔진의 리플렉션 시스템에서 사용할 수 있도록 만듭니다. 이를 통해 열거형이 블루프린트에서 선택 가능하게 됩니다.
    UENUM(BlueprintType)
    enum class EMyEnum : uint8
    {
        Option1 UMETA(DisplayName = "Option 1"),
        Option2 UMETA(DisplayName = "Option 2")
    };
    
    
  4. UPROPERTY:
    • 클래스 내의 변수에 다양한 메타데이터를 부여하여, 블루프린트 노출, 직렬화, 네트워크 복제 등의 기능을 사용할 수 있게 합니다. UPROPERTY는 변수의 가비지 컬렉션과 관련된 메모리 관리도 담당합니다(Unreal Engine)(Puget Systems).
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
    int32 PlayerHealth;
    
    
  5. UFUNCTION:
    • 특정 함수에 메타데이터를 부여하여 블루프린트에서 호출하거나 네트워크 복제를 가능하게 만듭니다. 이를 통해 블루프린트에서 C++ 함수를 호출하거나, 서버-클라이언트 간 네트워크 복제를 쉽게 설정할 수 있습니다(Puget Systems).
    UFUNCTION(BlueprintCallable, Category = "Player")
    void TakeDamage(int32 Damage);
    
    
  6. GENERATED_BODY:
    • 이 매크로는 클래스나 구조체에 필요한 기본적인 코드 블록을 자동으로 생성해 줍니다. UCLASS, USTRUCT, UENUM에서 주로 사용되며, 언리얼 엔진의 리플렉션 시스템과의 통합을 위한 필수 코드입니다.
    UCLASS()
    class MYGAME_API AMyActor : public AActor
    {
        GENERATED_BODY()  // 필수 코드 블록을 생성
    };
    
    
  7. UMETA:
    • UENUM이나 UPROPERTY에서 사용되며, 특정 값에 대한 메타데이터를 추가할 수 있게 해줍니다. 예를 들어, 열거형 값을 블루프린트 에디터에서 다르게 표시하려면 UMETA(DisplayName = "표시 이름")을 사용할 수 있습니다.
    UENUM(BlueprintType)
    enum class EGameMode : uint8
    {
        GM_Deathmatch UMETA(DisplayName = "Deathmatch"),
        GM_CaptureTheFlag UMETA(DisplayName = "Capture the Flag")
    };
    
    

그 외 주요 매크로:

  • UPROPERTYUFUNCTION 외에도, UINTERFACEDELEGATE 등 다양한 매크로들이 언리얼 엔진의 기능을 확장하는 데 사용됩니다. 특히, UINTERFACE는 인터페이스를 리플렉션 시스템과 통합해 다양한 클래스 간 상호작용을 가능하게 합니다(Unreal Engine)(Puget Systems).

이러한 매크로들은 언리얼 엔진의 다양한 시스템과 C++ 코드를 쉽게 통합하여, 복잡한 게임 로직을 보다 직관적으로 개발할 수 있게 돕습니다.


🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기주도학습을 목적으로 라이브 스트리밍을 합니다. 📢 1인 게임 개발을 목표로 Unreal과 Blender를 학습 중입니

www.youtube.com

 

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com

 


반응형