액터의 설계
UPROPERTY
- 언리얼 오프젝트 객체에서는 사용시에 자동으로 메모리를 관리해줌.
클래스 이름 접두사
- 액터 클래스에는 A, UObject의 클래스는 U가 붙는다.
UCLASS()
class TEST_API AFountain : public AActor
{
GENERATED_BODY()
public:
AFountain();
protected:
virtual void BeginPlay() override;
UPROERTY(VisibleAnywhere)
UStaticMeshComponent *Body;
UPROERTY(VisibleAnywhere)
UStaticMeshComponent *Water;
};
- 헤더의 클래스부분에서 Body와 Water를 선언해준다.
AFountain::AFountain()
{
Body = CreateDefalutSubobject<UStaticMeshComponent>(Text("Body"));
Water = CreateDefalutSubobject<UStaticMeshComponent>(Text("Water"));
RootComponent = Body;
Water->SetupAttachment(Body);
Water->SetRelativeLocation(FVector(0.0f, 0.0f, 135.0f));
}
- 생성자에서 컴포넌트를 생성하는 용도로 언리얼 엔진은 new가 아닌 CreateDefalutSubobject API라는 특별한 함수를 제공한다.
- CreateDefalutSubobject API에 사용한는 문자열 값은 액터에 속한 컴포넌틀르 구별하기 위한 Hash 값 생성에 사용된다. 따라서 중복되지 않는 유일한 값을 지정해야 한다.
- 액터를 대표할 루트 컴포넌트를 지정해야 한다.
- 루트 컴포넌트에 자식 컴포넌트를 SetupAttachment()함수로 만들어준다.
- SetRelativeLocation을 이용하여 컴포넌트의 기본 위치 값을 변경할 수 있다.
객체 유형과 값 유형
- 값 유형으로 클래스 멤버 변수를 선언하고 UPROPERTY 매크로를 선언해주면 미리 예약된 기본값이 지정된다.
'Game Programming > Unreal' 카테고리의 다른 글
[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 3 (0) | 2022.02.25 |
---|---|
[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 2 (0) | 2022.02.24 |
fps 각 방향별 다리 방향 애니메이션 (0) | 2021.11.30 |
캐릭터의 회전 (0) | 2021.11.22 |
Unreal 문자열의 추가 (0) | 2021.04.07 |