- 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++ 클래스를 우클릭하여 블루프린트 클래스를 생성한다.
- 명명 규칙은 아래의 문서를 따른다.
- 이후 언리얼 에디터의 컴파일 버튼(핫 리로드 또는 라이브 코딩)을 눌러 블루프린트 클래스에 정상적으로 컴포넌트가 생성되었는지 확인한다.
'UE 5 스터디 > C++' 카테고리의 다른 글
6. 액터에 데미지 입히기(FDamageEvent, TakeDamage) (0) | 2024.03.07 |
---|---|
5. 라인 트레이스(LineTraceSingleByChannel) (0) | 2024.03.06 |
4. 이펙트 스포닝하기(SpawnEmitterAttached) (0) | 2024.03.06 |
3. 액터를 다른 액터에 붙이기(AttachToComponent) (0) | 2024.03.06 |
2. 런타임에 액터 스포닝(Spawning) 하기(SpawnActor) (0) | 2024.03.06 |