공부/Unreal Engine 4

UE4 모듈에 관해서

Lero God 2022. 8. 26. 11:55

UE4에선 모듈이라고 라이브러리를 한 프로젝트 내에서 여러 개 생성할 수 있게 해줌. 모듈은 스태틱 라이브러리로도, DLL로도 생성이 가능하다.

 

 

Modular 모드

DLL 같은 개념

 

 

Monolithic 모드

스태틱 라이브러리 같은 개념

 

 

UE4 엔진 모듈 타입
  • Developement
         개발 도중에만 사용하는 모듈    
  • Editor
         에디터에서만 사용하는 모듈    
  • Runtime
        언제든, 어디에서든 사용 가능한 모듈    
  • ThirdParty
        써드 파티(에픽 게임즈가 코드 작성 안 한) 라이브러리(모듈), 코드

 

모듈과 플러그인 차이

플러그인은 모듈을 여러 개 가질 수도 있고, 리소스도 따로 가질 수 있음.

즉 모듈은 코드만 있는데 플러그인은 코드랑 리소스 둘 다 가질 수 있다.
플러그인의 모든 코드는 모듈에 포함되야 됨.

 

 

UCLASS, UPROPERTY 매크로

모듈에 UCLASS, UPROPERTY 매크로가 있다면

UHT 시리얼라이제이션, 가비지 컬렉션, 런타임 인트로스펙션 등을 제공하는데 필요한 코드를 붙여준다.

 

 

Build.cs

Build.cs 파일은 모듈 룰 파일임. 이 파일 디렉토리에 포함되는 파일들은 하나의 모듈이라고 할 수 있음. 여기서 모듈이 생성될 때 어떻게 빌드할지 여러 가지 설정(프로퍼티)를 정해준다. 언리얼 빌드 툴에서 컴파일한다.

(Build.cs 관련 정리한 글 : https://haewoneee.tistory.com/101)

 

 

모듈 밖에서 클래스나 함수 접근 방법

*_API 매크로를 통해 노출시켜야 함. 노출되는 항목이 많을수록 컴파일 시간이 길어짐. 클래스에 있는 한 함수에만 접근이 필요하면 함수에만 접근 가능 ㅇㅇ

 

모듈 API 지정자 문서 : https://docs.unrealengine.com/ko/Programming/Modules/API/index.html

 

모듈 API 지정자

클래스와 함수를 다른 모듈에 노출시키는 방법입니다.

docs.unrealengine.com

 

Hot Reload

에디터 실행 중에 필요에 의해서 모듈들을 로드 언로드를 하는 기능.