언리얼 엔진 타입의 헤더파일에는 한 파일에 여러 번 포함되지 않도록 하는 보호 장치가 있다.
바로 #pragma once 이다
이제 탱크를 UStataicMeshComponent로 만들어주자!
// Sets default values
ABasePawn::ABasePawn()
{
// Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
CapsuleComp = CreateDefaultSubobject<UCapsuleComponent>(TEXT("Capsule Collider"));
RootComponent = CapsuleComp;
BaseMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Base Mesh"));
BaseMesh->SetupAttachment(CapsuleComp);
TurretMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Turret Mesh"));
TurretMesh->SetupAttachment(BaseMesh); //
ProjectileSpawnPoint = CreateDefaultSubobject<USceneComponent>(TEXT("Spawn Point"));
ProjectileSpawnPoint->SetupAttachment(TurretMesh);
}
C++ 만들고 블루프린트 만드는 것의 의미: BasePawn을 기반으로 블루프린트 클래스 만들기를 선택하면 이 C++ 클래스를 기반으로 블루프린트를 만들 수 있다.
컴포넌트를 보면 앞서 코드에서 붙인 것들이 잘 붙어있는 것을 확인할 수 있다.
컴포넌트를 하나씩 만져보면 디테일 창이 빈 것을 확인할 수 있다. 이는 언리얼 엔진에서 c++기발자로서 제어할 수 있는 부분이고 컴포넌트를 블루프린트에 노출시킬 수 있다.
UPROPERTY() 매크로의 괄호 안에 넣을 수 있는 옵션들