일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 게임개발
- 메카님
- RBAC
- ret2libc
- TSet
- 배경 그림
- Unity #Indie Game
- dirty cow
- AINCAA
- Security
- frequency-domain spectrum analysis
- dtft
- 운영체제
- linear difference equation
- Rr
- 언리얼엔진
- DP
- STCF
- DSP
- stride
- 게임 개발
- pdlc
- sampling theory
- Frequency Response
- MAC
- 유니티
- MLFQ
- Race condition
- Double free
- 유스케이스
- Today
- Total
다양한 기록
[UE] 언리얼 C++ 코딩 규칙 본문
언리얼 엔진은 파스칼 케이싱이 기본
UnrealEngine O
unrealEngine X
unreal_engine X
각 단어의 첫번째 글자는 대문자, 언더스코어 사용 안함
타입 이름에는 추가적으로 대문자 접두사 포함
- 템플릿 클래스 T
- UObject 상속 U
- AActor 상속 A
- SWidget 상속 S
- 추상적 인터페이스 클래스 I
- 열거형 E
- 부울 변수는 b 사용 (ex. bIsActed)
- 그 외 대부분 클래스는 F 포함 (일반적인 클래스, 구조체)
typedef는 적합하게.. 구조체면 F 붙이고 UObject면 U 붙이고
* 특정 템플릿 인스턴스화의 typedef는 더 이상 템플릿이 아니며 다음과 같이 알맞은 접두사를 붙여야 함
typedef TArray<MyType> FArrayOfMyTypes;
- 부울을 반환하는 모든 함수는 IsVisible(), ShouldCleareBuffer() 같은 true, false 질문 필요
- 프로시저 (반환 값이 없는 함수)는 동사 뒤 오브젝트 붙여야 함 / 메서드의 오브젝트가 그 안에 있는 오브젝트는 예외
- 값을 반환하는 함수는 반환값을 설명해야 함
함수 파라미터가 참조로 전달되어 write될 것 같으면 이름 앞 접두사에 Out 추가
전달받아 안에서 쓰는 용도는 접두사 In
int 쓰면 안됨
int8, int32 이런 식으로 사용해야 함 (크기 보장이 안되기 때문에)
문자: TCHAR
표준 라이브러리 안씀 (일단 지금은)
Const 정확도
변경 안되는 변수는 최대한 Const 해줘야 함
레퍼런스는 자체로 const니 별 의미는 없음
const 배열 반환 => 별로
const 배열 레퍼런스 반환 => 좋음
const 배열 포인터 반환 => 좋음
const 배열 const 포인터 반환 => 별로
overrde, final 사용하기
nullptr 사용하기 (NULL 절대 안됨)
최대한 auto 쓰지 않기
사용 가능한 경우
- 변수에 람다 바인딩
- 이터레이터 변수에서 타입이 장황함
- 템플릿 코드에서 표현식의 타입을 쉽게 식별할 수 없는 경우
audo 쓸 거면 const, &, * 정확히 사용해야 함
범위 기반 for
for(TPair<FString, int32>& Kvp : MyMap)
{
~~
}
열거형
UENUM()
enum class EThing : uint8
{
a,
b
}
std::move 대신 MoveTemp 사용 가능
생성자에서 초기화하기
중괄호
func
{
}
이게 표준
탭 사용하기
파일 이름엔 접두사 빼기
헤더는 pragma once
include는 다 들고 와서 안쓰는 건 빼야 함
스트링 리터럴 TEXT() 매크로 쓰기
긴 조건 변수에 담기
ptr* p 처럼 쓰기
헤더에서 스태틱 변수 선언하지 않기 (참조하는 모슨 인스턴스가 컴파일됨)
// SomeMoudle.h
extern SOMEMODULE_AOI const FString GUsefulNamedStirng
// SomeModule.cpp
const FString GUsefulNamedStirng = TEXT("String")
외부에 있다고 알려는 주고 구현은 cpp에서
API 디자인 가이드
bool 함수 파라미터는 피하고, 플래그는 특히 더..
열거형으로 전달하게 해야 함
이때 비트 플래그 사용 가능
인터페이스로 쓸 거면 멤버 변수 넣지 말기
override 써주기
'언리얼 엔진 > 언리얼 엔진 : 기초' 카테고리의 다른 글
[UE] Delegate (델리게이트) / 발행 구독 패턴 (0) | 2024.12.26 |
---|---|
[UE] Composition (컴포지션) (0) | 2024.12.22 |
[UE] Interface (인터페이스) (0) | 2024.12.22 |
[UE] 언리얼 오브젝트 리플렉션 시스템 (0) | 2024.12.18 |
[UE] 언리얼 오브젝트 기초 (0) | 2024.12.18 |