그냥 게임개발자
언리얼 오브젝트란 본문
https://docs.unrealengine.com/5.3/ko/objects-in-unreal-engine/
언리얼의 오브젝트 베이스 클래스는 UObject이다.
U는 Unreal Object의 접두사 U이다.
UObject를 상속받아서 어떤 클래스를 선언하게 되면 그 클래스는 UnrealObject가 된다.
또한 클래스가 UnrealObject인지 지정하기 위해서는 UCLASS라는 매크로를 사용해서 태그 해주면 된다.
오브젝트 생성
- C++에서는 new 키워드를 사용하여 클래스를 생성하는데 있어 UObject는 NewObject라는 키워드를 사용
CDO가 생성되는 시점
언리얼 에디터를 처음 킬 때 75% Initialize 부분에서 CDO가 생성
UObject에 제공되는 함수성
모든 경우에 이 시스템을 사용하는 것이 필수적이지도 심지어 적절하지도 않지만, 그렇게 해 주면 다음과 같은 장점이 있다.
- 가비지 컬렉션
- 레퍼런스 업데이트
- 리플렉션
- 시리얼라이제이션
- 디폴트 프로퍼티 변경사항 자동 업데이트
- 자동 프로퍼티 초기화
- 자동 에디터 통합
- 실행시간에 유형 정보 사용 가능
- 네트워크 리플리케이션
언리얼 헤더 툴
- 언리얼 오브젝트를 처리하기 위해서 컴파일 과정에서 특수한 작업이 들어가는 것을 언리얼 헤더 툴이라고 한다.
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
Unreal Object 선엄임을 명시하기 위한 UCLASS라는 매크로를 명시해줌
UCLASS()
프로젝트명_API를 쓰는 이유
- 다른 DLL, 모듈에서 아래 MyObject를 사용할 수 있게 개방 해줌
- 이 키워드를 없애도 되지만, 그렇게 되면 이 MyObject는 다른 모듈에서 참조하지 않고 이 모듈 내(Unreal Object)에서밖에 사용할 수 없게 되는 특징을 가지고 있음
class FIRST_PROJECT_API UMyObject : public UObject
'Unreal스터디' 카테고리의 다른 글
인터페이스란? (0) | 2024.01.01 |
---|---|
Assert(어썰트) (0) | 2024.01.01 |
언리얼 오브젝트 처리 (1) | 2024.01.01 |
리플렉션 시스템이란? (0) | 2024.01.01 |
캐릭터 인코딩 문서 파악 (1) | 2024.01.01 |