Unreal C++
카테고리: Unreal-01
Main Reference:
- Unreal Engine 5 C++ The Ultimate Game Developer Course
Unreal Object
언리얼에서는 게임 오브젝트를 처리하기 위한 특별한 시스템이 존재한다. UObject
클래스를 이용하면 garbage collection, reflection, serialize 등 다양한 기능을 사용할 수 있다. 사용 방법은 간단한데 원하는 부분에 관련 매크로를 추가해 주면 된다. 매크로를 추가하고 컴파일 하게 되면, UHT(Unreal Head Tool)이 알아서 코드를 추가해주고 컴파일한다.
#pragma once
#include 'Fighter.generated.h'
UCLASS()
class AFighter : public AActor
{
GENERATED_BODY()
UPROPERTY()
UStaticMesh swordMesh;
UFUNCTION()
void SwingSword();
}
// main...
AFighter F1 = NewObject<AFighter>();
UObject
로 클래스를 관리하기 위해서는 아래와 같은 작업들이 필요함name.generated.h
헤더 파일 포함UCLASS()
: 해당 클래스를 UObject로 관리GENERATED_BODY()
: UHT에서 해당 부분에 관련 코드들 추가UPROPERTY()
: 해당 변수에 대해 GC, Reflection, 에디터(BP) 노출, 네트워크 복제 등 기능 지원UFUNCTION()
: 해당 함수에 대해 GC, Reflection, 에디터(BP) 노출, 네트워크 복제 등 기능 지원- UClass를 생성할 때에는
new
가 아닌NewObject<>
연산자를 이용해 생성
Naming Convetion
class TAttribute
class UActorComponent
class AActor
class SCompoundWidget
class IAnalyticsProvider
typedef TArray<FMytype> FArrayOfMyTypes;
- Uobject 상속받는 클래스의 접두사는 U
- AActor 상속받는 클래스의 접두사는 A
- Swidget 상속받는 클래스의 접두사는 S
- 추상 인터페이스의 클래스 접두사는 I
- Boolean 변수의 접두사는 b
- 그 외 언리얼 C++와 상관 없는 클래스(함수)는 F 붙여주기
Compile Tip
- 헤더 파일 변경시 : 에디터 종료 후 VS에서 컴파일
- 소스 파일 변경시 : 라이브 코딩으로 컴파일 가능 (Ctrl + Alt + F11)
- UClass를 추가할 때에는 수동으로 하지 말고 에디터를 이용해 생성
댓글 남기기