game-1 님의 블로그

[UnrealEngine5] 언리얼 C++ 코딩 규칙 본문

UnrealEngine

[UnrealEngine5] 언리얼 C++ 코딩 규칙

game-1 2025. 4. 9. 11:42

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/epic-cplusplus-coding-standard-for-unreal-engine

 

기본 철학

1. 읽기 쉬운 코드가 가장 중요합니다.

2. 통일된 코드 스타일은 협업과 유지보수를 쉽게 만듭니다.

3. 자동화 도구는 가급적 사용하지 말고 수동으로 스타일을 지켜야합니다.


네이밍 규칙

PascalCase를 사용합니다.

ex)

UUserWidget, APlayerController, FVector, TArray 이런식으로 사용합니다.

 

변수명

멤버 변수 : 접두어 b(bool), My, Num, Count 등 의미 있는 이름을 사용합니다.

(접두어 m_는 사용하지 않습니다.)

 

함수명

PascalCase

TakeDamae(), MoveToLocation()이런식으로 사용합니다.

 

로컬 변수, 매개변수

CamelCase 사용합니다.

deltaTime, playerController

 


들여쓰기 & 공백

 

들여쓰기 : 스페이스바 4칸

중괄호 {}는 항상 새 줄에 작성합니다.


Const 사용

가능하다면 모든 인자는 const 참조로 받고, 함수가 멤버 변수를 바꾸지 않으면 const를 붙입니다.

ex)

void PrintName(const FString& Name) const;

포인터 및 참조

포인터 : Type* Name

예시 : UActorComponent* MyComponent;

 

참조 : Type& Name

예시 : FVector& Direction


헤더 포함 규칙

필요한 최소한만 include

forward declaration(class Foo;) 적극 활용

.h에는 절대 using namespace 쓰지 않습니다.!


UObjcet 관련 규칙

 

UCLASS, USTRUCT, UENUM, UPROPERTY, UFUNCTION 매크로는위에 바로 붙여서 정리합니다.

UPROPERTY에는 접근 제어자를 명확히 지정합니다.

UCLASS()
class AMyActor : public AActor
{
    GENERATED_BODY()

public:
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
    int32 Health;
};

 


언리얼 매크로 규칙

GENERATE_BODY() 또는 GENERATED_UCLASS_BODY()는 클래스 내부 가장 위에 위치합니다.