⚡이 문서는 이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해 강의를 바탕으로 작성되었습니다.
Unreal Object의 존재 이유?
- 성능과 안정성이라는 두 가지 조건을 만족해야함
- C++ 언어를 확장해 모던 객체지향 설계를 가능하게끔 하기 위함
Unreal Object 특징
- 구분을 위해 일반 C++ 오브젝트는 접두사 F, 언리얼 오브젝트는 U를 사용함
- 일반 C++ 오브젝트는 저수준 제어, 언리얼 오브젝트는 컨텐츠 제작을 위해 사용함
Unreal Object 선언
Unreal Object는 반드시 Tool -> New C++ Class를 클릭하여 선언해야 한다

생선된 Object 헤더 파일은 아래와 같다
#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "MyObject.generated.h"
/**
*
*/
UCLASS()
class UNREALPROJECT_API UMyObject : public UObject
{
GENERATED_BODY()
};
- "CoreMinimal.h", "UObject/NoExportTypes.h"는 언리얼 오브젝트에 반드시 포함해야 되는 헤더다.
- 클래스 이름을 MyObject로 생성했기 때문에 접두사 'U'가 붙어있는 것을 확인할 수 있다. (단 파일 이름에는 접두사가 붙지 않음)
- Unreal Object인 것을 명시하기 위해 UCLASS() 매크로가 앞에 붙어있음
- UNREALPROECT_API는 다른 모듈에서도 해당 오브젝트를 참조할 수 있게 해준다. 해당 부분을 없애면 MyObject가 속해있는 모듈 내에서만 참조를 할 수 있게 됨
- "MyObject.generated.h" 파일 및 GENERATED_BODY() 매크로는 OOP기능 확장을 위해 언리얼엔진에서 자동적으로 코드 및 파일을 생성하기 위해 추가한 부분이다. (해당 부분에 대해서는 강의에서도 자세하게 알지 않아도 무방하다는 식으로 넘어감)
'Unreal Engine 학습' 카테고리의 다른 글
| [UE5] 언리얼 엔진 헤더 파일 #include시 주의사항 (0) | 2023.09.18 |
|---|---|
| [UE5] Unreal Object 리플렉션 시스템 - 1 (0) | 2023.09.17 |
| [UE5] 문자열 - FName, FText (0) | 2023.09.17 |
| [UE5] 문자열 - FString (0) | 2023.09.17 |
| [UE5] UE_LOG를 사용한 로그 출력 방법 (0) | 2023.09.17 |