[Unreal] check, verify, ensure
check 사용 케이스 DO_CHECK = 1인 경우 매크로 내부를 실행 데스트 실패 시 중단점 체크 + 크래시 리포터 DO_CHECK = 0인 경우 매크로를 무시한다
check 사용 케이스 DO_CHECK = 1인 경우 매크로 내부를 실행 데스트 실패 시 중단점 체크 + 크래시 리포터 DO_CHECK = 0인 경우 매크로를 무시한다
Bit field 선언
FORCEINLINE과 inline 일반적인 inline 키워드를 사용했을 때, 컴파일러는 해당 구문을 inline화 할지 여부를 스스로 결정한다 하지만 __forceline 키워드는 컴파일러의 판단여부와 무관하게 무조건 inline화 하도록 강제한다 __forceinline은 VS 컴파일러에서 제공하는 non-standa...
BlueprintPure 함수를 블루프린트에 노출시킬 때, 이 함수가 OwnerObject에 아무 영향을 주지 않는 것을 보장하는 키워드 Gettor의 성격을 가진다
Transient 언리얼 오브젝트는 직렬화 기능으로 오브젝트의 UPROPERTY 매크로로 속성을 저장 및 로딩할 수 있다 이를 테면, CurrentHP와 같은 값은 게임을 시작할 때마다 변경되므로 이 값을 저장 또는 로딩하는 것은 디스크 낭비다 이런 속성에 Transient 키워드를 추가해 직렬화 대상에서 제외할 수...
UFUNCTION Overload UFUNCTION 함수는 Overload 할 수 없다 만약 Overload 필요하다면 UFUNCTION 키워드를 제거하고 사용해야 한다 UHT가 Unreal Function을 등록하기 위해서 Iterate 할 때, 헤더 파서가 확인하는 것은 함수의 이름 뿐 ...
```c++ UCLASS(BlueprintType, Deprecated) class CLIENT_API UDEPRECATED_CameraBehaviorDataAsset: public UDataAsset { GENERATED_BODY()
FName 텍스트에 대소문자 구분을 하지 않는다
Reflection 프로그램이 런타임, 그러니까 실행중에 자기 자신의 구조를 검사하고 조작할 수 있는 능력 일반적인 C++에서는 컴파일 시점에 모든 정보가 결정되고, 컴파일된 상태의 C++ 언어는 CPU로 전달된다 어떤 class A가 어떤 멤버 변수 혹은 함수를 가지고 있는지 알 수 없다 리플랙션이 지원되는 언...
Garbage Collection
UCLASS와 USTRUCT의 차이? 각 매크로는 Reflection 시스템에 클래스와 구조체를 등록하는 데 사용한다 Unreal Editor가 사용자 정의의 클래스 또는 구조체를 인식하기 위한 방법이다 메모리 관리 시스템에 포함시켜 Garbage Collection할 수 있도록 한다 UHT(Unreal ...
Hard Reference
UObject UObject는 Unreal Engine에서 가장 기본이 되는 객체다 UCLASS 매크로 선언으로 UObject를 관리하는 시스템이 이를 인식한다 Reflection System을 통해 Garbage Collection을 수행하는 등의 역할 모든 언리얼 오브젝트는 실행 초기의 런타임 과정에서...
Class Default Object (CDO) 언리얼 오브젝트의 기본 세팅 상태를 지정 기본 탬플릿 오브젝트 Master copy UClass, 리플렉션 시스템에서 작동하기 위해 고안된 클래스에서 이 정보를 포함한다 C++ 언어 차원에서 제공하지 않는 리플렉션 기능을 위 방법을...
기본적인 Actor의 라이프 사이클
언리얼에 매크로를 사용하는 이유 언리얼 C++ 코드는 Unreal Header Tool, UHT Preprocessor라 불리는 커스텀 RTTI를 사용한다 이런 매크로가 달린 코드는 일반적인 C++ 매크로와 달리 더 낮은 레벨에서 작동하며 관리된다 이 매크로들은 RTTI, Reflection 등 작동을 위해 메타 데이터를 생성한다