언리얼 엔진에서 해더 파일(.h 파일)에 클래스 변수를 선언할 때 2가지 방법이 있습니다.
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true"))
class USpringArmComponent* SpringArm;
class 키워드를 사용한 선언과
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true"))
USpringArmComponent* SpringArm;
class 키워드를 사용하지 않은 선언입니다.
SpringArmComponent를 사용하기 위해서는 #include "GameFramework/SpringArmComponent.h"를 선언해 주어야합니다. 다만 선언하는 위치가 '.h 파일'이냐 '.cpp 파일'이냐에 따라서 class 키워드를 사용해야합니다.
보통 #include는 '.h 파일'에 선언하지만 이럴 경우 컴파일 시간이 늘어나게 되며 의존성이 증가됩니다.
하지만 '.cpp 파일'에 선언하여 전방선언을 사용하면 컴파일 시간을 줄어들고 의존성을 낮출 수 있습니다.
'.h 파일'에 #include "GameFramework/SpringArmComponent.h"을 선언하지 않고 전방선언을 사용하면 컴파일러가 USpringArmComponent* SpringArm이 무엇인지 알 수가 없습니다. 따라서 전방선을 사용할 때 class 키워드를 붙여 클래스라고 알려줍니다.
'Unreal Engine > C++' 카테고리의 다른 글
[Unreal Engine 4 C++] 내비게이션 사용 시 모듈 추가 (0) | 2020.12.09 |
---|---|
[Unreal Engine 4 C++] 컴포넌트 생성(CreateDefaultSubobject, NewObject) (0) | 2020.11.25 |
[Unreal Engine 4 C++] 범위 기반 For 루프 (0) | 2020.11.04 |
[Unreal Engine 4 C++] 유효성 검사, nullptr과 IsValid 그리고 Pending Kill (0) | 2020.10.30 |
[Unreal Engine 4 C++] Interface 사용하기 (0) | 2020.10.25 |