반응형
👨💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.
언리얼 엔진에서 UPROPERTY 는 어떻게 사용할 수 있는지 물어봤습니다.
질문 >
언리얼 엔진에서 UPROPERTY 는 어떻게 사용하나요?
답변 >
UPROPERTY는 **언리얼 엔진(UE)**에서 C++ 클래스의 변수에 메타데이터와 속성을 부여하는 매크로로, Unreal Engine의 Garbage Collection(가비지 컬렉션), 리플렉션 시스템 및 에디터와 상호작용할 수 있도록 하는 중요한 기능입니다. 주로 객체 직렬화, 에디터에서의 노출, 복제 및 가비지 컬렉션과 같은 기능을 제어하는 데 사용됩니다.
UPROPERTY 사용법
UPROPERTY([Specifier], [Specifier])
데이터 타입 변수 이름;
주요 스펙ifiers(지정자)와 사용 예시:
- VisibleAnywhere, EditAnywhere:
- 이 지정자는 언리얼 에디터에서 변수를 수정할 수 있는 범위를 설정합니다.
- VisibleAnywhere는 에디터에서 읽기 전용으로 보여주고 수정할 수 없으며, EditAnywhere는 어디서든 수정이 가능합니다.
UPROPERTY(EditAnywhere) int32 PlayerHealth;
- BlueprintReadOnly, BlueprintReadWrite:
- 이 지정자는 블루프린트에서 변수를 읽거나 수정할 수 있는 권한을 제어합니다.
- BlueprintReadOnly는 블루프린트에서 읽기만 가능하고, BlueprintReadWrite는 읽기 및 쓰기가 모두 가능합니다.
UPROPERTY(BlueprintReadWrite, EditAnywhere) float Speed;
- Transient:
- 이 지정자는 변수가 직렬화되지 않도록 설정합니다. 주로 런타임 중 임시 데이터로 사용될 때 적용되며, 저장이나 네트워크 복제 과정에서 제외됩니다.
UPROPERTY(Transient) int32 TemporaryData;
- Replicated:
- Replicated는 네트워크 복제를 위해 변수를 사용할 때 적용됩니다. 이를 사용하면 해당 변수가 서버에서 클라이언트로 동기화됩니다.
UPROPERTY(Replicated) bool bIsAlive;
- Category:
- 변수의 카테고리를 설정하여 에디터에서 변수들이 특정 그룹으로 묶여 보이게 할 수 있습니다.
UPROPERTY(EditAnywhere, Category = "Player Stats") int32 PlayerLevel;
UPROPERTY의 주요 역할:
- Garbage Collection: UPROPERTY가 선언된 객체는 Unreal Engine의 가비지 컬렉션 시스템에 의해 자동으로 관리되며, 메모리 누수를 방지할 수 있습니다.
- Reflection System: 언리얼 엔진의 리플렉션 시스템을 통해, 런타임에 변수 및 클래스의 정보를 액세스하고 조작할 수 있게 됩니다. 이 시스템은 블루프린트와 C++ 간의 통신을 가능하게 해줍니다.
- 직렬화: UPROPERTY로 선언된 변수는 자동으로 저장되거나 로드될 때 직렬화됩니다.
UPROPERTY는 언리얼 엔진의 핵심적인 C++ 매크로로, 변수를 에디터와 블루프린트에서 활용할 수 있게 하며, 객체의 관리 및 상태 동기화, 게임 로직을 쉽게 구현하는 데 필수적인 도구입니다(Unreal Engine)(Puget Systems).
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
🎬 유튜브 채널 🎬
🎬 치지직 채널 🎬
반응형
'프로그래밍' 카테고리의 다른 글
👨💻 [MFC] invalid PKCS #7 block padding found 오류가 발생하는 이유는 무엇인가요? (0) | 2024.10.04 |
---|---|
👨💻 [Unreal] 언리얼 엔진에서 UFUNCTION 은 어떻게 사용하나요? (0) | 2024.09.30 |
👨💻 [MFC] MFC 에서 std::map 의 Key 목록을 얻으려면 어떻게 하나요? (1) | 2024.09.20 |
👨💻 [MFC] MFC 에서 Map 에 Key 값이 존재하는지 확인하는 방법은 어떻게 되나요? (0) | 2024.09.20 |
👨💻 [MFC] MFC 에서 컨트롤의 Z Order를 가장 앞으로 설정하려면 어떻게 해야 하나요? (2) | 2024.09.10 |