그냥 게임개발자

언리얼 오브젝트란 본문

Unreal스터디

언리얼 오브젝트란

sudoju 2024. 1. 1. 15:43

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