언리얼 C++은 리플렉션이 적용되어 있기 때문에 언리얼만의 문법을 따라주어야 한다.
언리얼에서 C++용 프로젝트를 생성 후 탐색기에서 보게 되면
다음과 같은 언리얼 Project파일과 C++솔루션 파일이 생성되어 있을 것이다. 언리얼 Project 파일을 우클릭 하게 되면 [Generate VisualStudio Project File]이 보이는데 C++ prj 파일이 보이지 않을 경우 이것을 눌러 생성 하도록 하자.
C++ 프로젝트를 열어서 Header파일을 확인 해보면 다음과 같이 코드가 작성되어 있는 것을 확인할 수 있는데 기존 C++과 다른 점들을 알아 보자.
언리얼은 C++은 리플렉션 시스템을 제공한다. C++에선 리플렉션을 제공하지 않으므로 언리얼에서 구현한 것이기 때문에 언리얼 문법 사용을 강제하게 된다. 이렇게 언리얼 문법을 강제해서 생기는 이점은 C++에서는 제공되지 않는 가비지 컬렉터와 C++프로젝트에서 언리얼 에디터와의 통신을 가능하게 해준다.
리플렉션을 사용하기 위한 매크로에는 다양한 태그들을 넣어서 관리할 수 있는데 이것은 enum 으로 만들어져 값을 넣을 수 있게 되어 있다. 해당 태그들의 정의는 'ObjectMacros.h'에 정의 되어 있으며 설명도 나와 있으니 추후 궁금하다면 찾아보기로 하자.
언리얼의 구체적인 코딩 표준은 링크를 클릭하면 확인 할 수 있다.
기본적으로는 Pascal Casing을 사용하고 있으며 사용 법은 다음과 같다.
Pascal Casing : 합성어의 첫 글자를 대문자로 사용해 명명 ex) UnrealEngine
추가로 상속구조를 이름에서 유추할 수 있도록 표준을 제공하는데 캡처 화면 처럼 AClass2_2Character의 경우 A는 Actor를 의미한다. AClass2_2Character는 Actor를 상속받은 Class2_2Character를 의미하게 된다.
내부 객체는 포인터로 관리하게 되는데 포인터를 사용하게 됨으로서 클래스에서는 직접적으로 값을 관리할 필요가 없어지므로 유용하다.