정리


언리얼 구조체 UStruct

언리얼 엔진의 구조체 | 언리얼 엔진 5.5 문서 | Epic Developer Community

구조체 (UStructs)는 관련 프로퍼티를 체계화 및 조작할 수 있는 데이터에 특화된 자료 구조 형태이다.

즉, 데이터 저장 및 전송에 특화된 가벼운 객체이다.

또한 구조체는 접두사F를 사용한다.

USTRUCT(BlueprintType)
// U가 아닌 접두사 F이다 !
struct FMyStruct
{
		GENERATED_BODY()
		
		UPROPERTY(EditAnywhere,BlueprintReadWrite,Category = "Test")
		int32 MyIntegerMemberVariable;
		
		// 일반 c++ 변수 (블프에서 접근 불가)
		int32 NavtiveOnlyMember;
		
		// 블루프린트, 그래프에 액세스 할 수 없으나
		// UE4의 리플렉션, 스마트 포인터, 가비지 컬렉션 시스템에서 관리됨
		UPROPERTY()
		UObject* SafeObjectPointer;
}

구조체의 사용법은 UClass와 크게 다르지 않다.

언리얼 오브젝트 포인터를 선언할 경우에는, UPROPERTY() 매크로를 붙여줘야지만 자동으로 메모리 관리를 한다는 것을 명심하자!

$$ \color{gray}\footnotesize\textsf{c++도 사실 구조체와 클래스는 거의 같다고 보면 되니까! c++을 기반으로 한 언리얼도 그렇지 싶다!} $$

USturct의 특징

왜 이렇게 설계했을까? 왜냐하면, 말 그대로 데이터 용도의 가벼운 객체로만 사용하는 용도이기 때문이다.