- Udemy UE5 C++ 강좌를 기본으로 합니다.

 

1. C++ 액터 클래스 생성하기

- Ctrl + Space로 콘텐츠 드로어를 열고 C++ 클래스 폴더로 이동

- 우클릭 새 C++ 클래스 클릭

 

- 액터 선택 후 다음 클릭

- 적당한 이름 부여 후 클래스 생성

 

 

2. C++ 액터 클래스에 컴포넌트 추가

Gun 액터를 생성하여 루트 컴포넌트와 스켈레탈 메쉬 컴포넌트를 추가한다.

CreateDefaultSubobject 함수를 사용하여 컴포넌트를 생성하고, SetupAttachment 함수로 컴포넌트를 붙인다.

 

(1) Gun.h

private:
	UPROPERTY(VisibleAnywhere)
	USceneComponent* Root;

	UPROPERTY(VisibleAnywhere)
	USkeletalMeshComponent* Mesh;

컴포넌트가 예기치 않게 수정되는 것을 방지하기 위해 UPROPERTY의 VisibleAnywhere를 사용한다.

 

(2) Gun.cpp

#include "Gun.h"
#include "Components/SkeletalMeshComponent.h"

AGun::AGun()
{
	PrimaryActorTick.bCanEverTick = true;

	Root = CreateDefaultSubobject<USceneComponent>(TEXT("Root"));
	SetRootComponent(Root);

	Mesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Skeletal Mesh"));
	Mesh->SetupAttachment(Root);
}

액터는 실제로 상속구조를 가지지 않는다.

하지만 액터에 부착되는 씬 컴포넌트는 상속구조를 가지기 때문에, 액터가 상속구조를 갖는 것처럼 하게 한다.

 

즉, 상속구조를 이용하고 컴포넌트를 붙이기 위해서는 씬 컴포넌트가 필요하다.

따라서 최상위에 씬 컴포넌트인 RootComponent를 생성하고 Root를 이로 지정한다.

 

이제 스켈레탈 메시 컴포넌트를 생성하고 이전에 생성한 Root에 붙이는 작업을 한다.

이 때 SetupAttachment 구문에 유의한다.

(붙일 컴포넌트에서 SetupAttachment 함수를 호출한다)

 

3. 파생 블루프린트 클래스 생성

- 코드로 생성한 C++ 클래스를 우클릭하여 블루프린트 클래스를 생성한다.

- 명명 규칙은 아래의 문서를 따른다.

 

권장하는 에셋 명명 규칙

에셋 구성에 참고하기를 권장하는 명명 규칙입니다.

docs.unrealengine.com

 

 

- 이후 언리얼 에디터의 컴파일 버튼(핫 리로드 또는 라이브 코딩)을 눌러 블루프린트 클래스에 정상적으로 컴포넌트가 생성되었는지 확인한다.