[UE4] CoreMinimal.h

그림자왕국·2020년 11월 14일
1

UE4

목록 보기
6/7
post-thumbnail

CoreMinimal.h

언리얼 C++ 프로젝트 구성이 4.15 버전부터 IMYU라는 새로운 방식으로 변경됬다.
IMYU 방식이 고안된 이유는 불필요한 헤더 파일의 참조로 인한 컴파일 시간과 인텔리센스의 부하를 최소화하기 위함인데(불필요한 컴포넌트를 포함하는 걸 방지하기 위해), 이로 인해 언리얼 오브젝트가 동작할 수 있는 최소한의 기능만 선언된 CoreMinimal.h 공용 헤더 파일만 참조하도록 C++ 코드의 템플릿이 변경됐다.


EngineMinimal.h

하지만 콘텐트 제작에는 다양한 엔진 기능(컴포넌트 등)이 필요하기 때문에 주로 EngineMinimal.h 파일을 포함하여 사용한다.


Module

C++ 코드를 컴파일한 결과물을 언리얼 엔진에서는 모듈(Module)이라고 한다.
게임 로직(ArenaBattle)을 담은 모듈은 특별히 게임 모듈이라는 명칭을 사용한다.
게임 모듈은 동적 라이브러리(dll)로 구성되어 있다.

Binaries 폴더

Binaries 폴더에는 C+++ 코드가 컴파일된 결과물(모듈)을 저장하는 공간이다.
이 폴더는 삭제해도 빌드 시마다 생성된다. 게임 모듈의 이름은 규칙이 있는데
예를 들어, ArenaBattle 모듈의 이름은 UE4Editor-ArenaBattle.dll 이어야 한다.


언리얼 C++ 프로젝트의 컴파일과 실행 과정을 요약하면 다음과 같다.


MacroList

TEXT

언리얼 엔진은 문자열을 생성할 때 모든 플랫폼(OS)에서 2바이트 문자열 체계(한글 등)를 동일하게 유지시키는 TEXT라는 메크로를 제공한다. 문자열을 사용할 때는 해당 메크로를 사용하는게 좋다.

EditAnywhere

언리얼 오브젝트의 속성 값은 객체 유형과 값 유형으로 나뉜다. 객체 유형은 컴포넌트류, 값 유형은 바이트, 정수 등과 같은 데이터 유형이 존재한다.

VisibleAnywhere 키워드를 매크로로 사용하면 유형의 값을 수정할 수 없는데

객체 유형에 VisibleAnywhere 키워드를 사용하면 객체를 볼 수는 있지만, 해당 객체를 다른 객체로 변경할 수는 없다. 예를 들자면 StaticMeshComponent 를 VisibleAnywhere 키워드로 선언하면 해당 컴포넌트를 다른 컴포넌트(Particle, Light)로 변경할 수 없는 것이다.

즉 값 유형과 객체 유형 모두 VisibleAnywhere 키워드를 사용해 해당 속성의 데이터를 변경할 수 없다는 점은 동일하다. (객체 유형(컴포넌트를 변경), 값 유형(int, double 등의 값 변경))

언리얼 에디터에서 속성의 데이터를 변경하자면 EditAnywhere 키워드를 사용하면 된다.

Meta = (AllowPrivateAccess = true)

해당 매크로를 이용해 private 변수를 선언하면 에디터에서는 이를 편집할 수 있게 되고 동시에 변수에 데이터를 은닉할 수 있게 프로그래밍 영역에서 캡슐화(private)가 가능해진다.


컴포넌트 유형

컴포넌트 : 액터에 추가시킬 수 있는 함수성 조각으로, 액터 안의 하위 오브젝트로 사용할 수 있도록 설계된 유형
트랜스폼 정보가 추가로 요구되는 컴포넌트(스태틱, 파티클 등) : 씬 컴포넌트
트랜스폼 정보가 필요없는 기능만 제공하는 컴포넌트(무브먼트 등) : 액터 컴포넌트

profile
언리얼 엔진 매니아입니다.

0개의 댓글