Actor 클래스 코드 구조
#pragma once
동일 헤더가 프로젝트 곳곳에서 여러 번 포함되더라도 컴파일러가 한 번만 처리하도록 한다.
#include "CoreMinimal.h"
엔진 전역 타입, 매크로, 함수 등을 가져온다.
#include "GameFramework/Actor.h"
AActor 클래스 선언을 사용 가능하게 한다.
#include "Item.generated.h"
언리얼 헤더툴이 자동 생성하는 코드를 포함하는 것으로, 항상 헤더의 마지막 줄에 위치해야한다.
UCLASS()
이 클래스를 리플렉션 시스템에 등록하는 매크로
언리얼 에디터에서 이 클래스를 블루프린트로 확장할 수 있게 하고, 에디터의 여러 기능과 연동하도록 한다.
언리얼 엔진 C++에서는 클래스 이름에 접두사를 붙이는 접두사 규칙이 있다.
A(actor), U(object), F(구조체), T(템플릿), E(열거형) 등
컴포넌트란?
Actor가 어떤 역할을 하거나 특정 속성을 갖도록 만들어주는 부품 개념
한 액터에 여러 개의 컴포넌트를 장착해 복합적인 기능을 구현할 수 있다.
// 루트 컴포넌트를 나타내는 Scene Component 포인터
USceneComponent* SceneRoot;
// Static Mesh Component 포인터
UStaticMeshComponent* StaticMeshComp;
// Scene Component를 생성하고 루트로 설정
SceneRoot = CreateDefaultSubobject<USceneComponent>(TEXT("SceneRoot"));
SetRootComponent(SceneRoot);
// Static Mesh Component를 생성하고 Scene Component에 Attach
StaticMeshComp = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMesh"));
StaticMeshComp->SetupAttachment(SceneRoot);
// Static Mesh를 코드에서 설정
static ConstructorHelpers::FObjectFinder<UStaticMesh> MeshAsset(TEXT("/Game/Resources/Props/SM_Chair.SM_Chair"));
if (MeshAsset.Succeeded())
{
StaticMeshComp->SetStaticMesh(MeshAsset.Object);
}
// Material을 코드에서 설정
static ConstructorHelpers::FObjectFinder<UMaterial> MaterialAsset(TEXT("/Game/Resources/Materials/M_Metal_Gold.M_Metal_Gold"));
if (MaterialAsset.Succeeded())
{
StaticMeshComp->SetMaterial(0, MaterialAsset.Object);
}'내일배움캠프-언리얼' 카테고리의 다른 글
| [내일배움캠프 - 언리얼] DAY 33 - 액터 트랜스폼 (0) | 2026.01.15 |
|---|---|
| [내일배움캠프 - 언리얼] DAY 32 - 로그와 라이프 사이클 (0) | 2026.01.13 |
| [내일배움캠프 - 언리얼] DAY 30 - C++ Actor 클래스 생성 및 삭제하기 (0) | 2026.01.09 |
| [내일배움캠프 - 언리얼] DAY 29 - 언리얼 엔진 C++ 빌드 프로세스 이해하기 (0) | 2026.01.08 |
| [내일배움캠프 - 언리얼] DAY 28 - 텍스트 콘솔 RPG - 6 (0) | 2026.01.07 |