출처


언리얼 엔진을 위한 에픽 C++ 코딩 표준 | 언리얼 엔진 5.5 문서 | Epic Developer Community

주요 코드 컨벤션



언리얼 엔진 프로젝트 코딩 컨벤션 규칙

본 문서는 언리얼 엔진을 사용하여 닌텐도 대난투 스매쉬 스타일의 프로젝트를 진행함에 있어, 팀 내 코딩 스타일의 통일성을 유지하고, 코드 가독성 및 유지보수를 편리하게 하기 위해 작성되었습니다.


1. 클래스 명명 규칙 (Class Naming Convention)

예시


2. 클래스 내부 멤버 선언 순서 (Member Ordering)

클래스 내 멤버의 순서를 명확히 지정하여 코드 분석과 코드 리뷰의 편의성을 높인다.

다음과 같은 순서로 작성한다.

  1. 멤버 함수(Member Functions)
  2. 멤버 변수(Member Variables)

예시

UCLASS()
class USmashCharacter : public ACharacter
{
    GENERATED_BODY()

public:
    USmashCharacter();
    virtual void BeginPlay() override;

    virtual void Tick(float DeltaTime) override;

    void Attack();

protected:
    void Move();

private:
    void CalculateDamage();

public:
    UPROPERTY(EditAnywhere)
    float Health;

protected:
    UPROPERTY(EditDefaultsOnly)
    float AttackPower;

private:
    UPROPERTY()
    bool bIsDead;

    // 델리게이트는 최하단에 배치
    UPROPERTY(BlueprintAssignable)
    FOnCharacterDeathSignature OnCharacterDeath;
};

3. 인터페이스 클래스 명명 규칙 (Interface Naming Convention)

인터페이스를 작성할 때, 클래스 이름 앞에 접두사 Interface_를 붙여 명확히 한다.

예시


4. 주석 작성 규칙 (Commenting Convention)

주석은 적당히 작성한다.

좋은 예시

// 캐릭터의 상태가 죽음일 경우만 처리
if (bIsDead)
{
    HandleDeath();
}

나쁜 예시

// 체력을 설정
Health = 100; // 체력을 100으로 초기화

5. 파일명 및 폴더 구조 규칙 (File & Folder Structure Convention)

폴더 구조 예시

/AbilitySystem
 ├─ BaseAbility.h
 └─ SmashAbility.h

/ItemSystem
 ├─ BaseItem.h
 └─ HealingItem.h

6. 변수명 규칙 (Variable Naming Convention)