[Unreal] 코딩 표준

박민주·2023년 1월 19일
0

Unreal

목록 보기
19/29

언리얼 엔진 4 코드베이스에 에픽게임즈가 사용하는 표준과 규칙이다.
이 규칙의 상당수는 컴파일러 간의 호환을 위해 필요한 것이라고 한다.
여러모로 지키는 것이 좋을 것 같다.

https://docs.unrealengine.com/4.27/ko/ProductionPipelines/DevelopmentSetup/CodingStandard/

클래스 체계

  • public 을 먼저 선언하고, 그 후 클래스의 private 구현이 뒤따른다
    (아마 헤더파일이 public이고 소스파일이 private인 걸 의미하는 거겠지,,?)

작명 규칙

  • 템플릿 클래스 접두사는 T

  • UObject 에서 상속하는 클래스 접두사는 U

  • AActor 에서 상속하는 클래스 접두사는 A

  • SWidget 에서 상속하는 클래스 접두사는 S

  • 추상 인터페이스인 클래스 접두사는 I입니다.

  • Enum(열거형)의 접두사는 E

  • Boolean(부울) 변수의 접두사는 b (예: bPendingDestruction 또는 bHasFadedIn).

  • 그 외 대부분 클래스의 접두사는 F이나, 일부 서브시스템은 다른 글자를 사용하기도 함

  • Typedef 접두사는 적합한 유형을 붙여야 함
    구조체의 typedef인 경우 F, UObject 등의 typedef인 경우 U

UnrealHeaderTool(언리얼 헤더 툴)은 대부분의 경우 올바른 접두사가 필수이므로, 제대로 붙여주는 것이 중요하다.

변수, 메서드, 클래스 이름은 명확하고 애매하지 않으며 서술적이여야 합니다. 이름의 범위가 클 수록, 서술적인 좋은 이름의 중요성 역시 커집니다. 과도한 축약은 피하시기 바랍니다.

-> 변수, 메서드, 클래스 이름은 짧은 것보다 길더라도 정확한 의미를 내포하는 것이 중요한 것 같다.

포팅 가능한 C++ 코드

  • bool - boolean 값(bool 크기 추정 금지). BOOL 은 컴파일되지 않습니다.
  • TCHAR - character(TCHAR 크기 추정 금지)
  • uint8 - unsigned byte(1 바이트)
  • int8 - signed byte (1 바이트)
  • uint16 - unsigned "short"(2 바이트)
  • int16 - signed "short"(2 바이트)
  • uint32 - unsigned int(4 바이트)
  • int32 - signed int(4 바이트)
  • uint64 - unsigned "quad word"(8 바이트)
  • int64 - signed "quad word"(8 바이트)
  • float - single precision floating point(4 바이트)
  • double - double precision floating point(8 바이트)
  • PTRINT - 포인터를 가질 수 있는 integer(PTRINT 크기 추정 금지)
profile
Game Programmer

0개의 댓글