Unreal C++

Date:     Updated:

카테고리:

태그:

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를 추가할 때에는 수동으로 하지 말고 에디터를 이용해 생성



맨 위로 이동하기

Unreal-01 카테고리 내 다른 글 보러가기

댓글 남기기