C++ 코드를 사용하여 게임플레이 엘리먼트를 프로그래밍할 때 각 모듈에는 여러 C++ 클래스가 포함될 수 있습니다.

각 클래스는 새 액터나 오브젝트에 대한 템플릿을 정의합니다. 클래스 헤더 파일 내에서 클래스, 클래스 함수 및 프로퍼티가 선언됩니다. 클래스에는 또한 관련된 프로퍼티의 정리 및 조작을 도와주는 데이터 구조인 구조체가 포함될 수 있습니다. 구조는 자체적으로 정의될 수도 있습니다. 인터페이스를 통해 서로 다른 클래스에 의해 추가적인 게임플레이 비헤이비어가 구현되게 할 수 있습니다.
언리얼 엔진으로 프로그래밍할 때 표준 C++ 클래스, 함수, 변수를 보유할 수 있습니다. 이것들은 표준 C++ 구문으로 정의 가능합니다. 그러나 UCLASS()
, UFUNCTION()
,
UPROPERTY()
매크로를 사용하여 언리얼 엔진이 새 클래스, 함수, 변수를 인식하게 할 수 있습니다. 예를 들어 선언 앞에 UPROPERTY()
매크로가 붙은 변수는
엔진의 가비지 컬렉션 대상이 될 수 있으며, 언리얼 에디터 내에 표시하여 편집할 수 있습니다. 또한 UINTERFACE()
및 USTRUCT()
매크로가 있으며,
언리얼 엔진 및 언리얼 에디터 내 클래스, 함수, 프로퍼티,
인터페이스 또는 구조체의 비헤이비어를 지정하는 데 사용할 수 있는 각 매크로용 키워드가 있습니다.
위의 매크로와 더불어 C++ 코드를 블루프린트에 노출할 때 주로 사용하는 UPARAM() 매크로가 있습니다. UPARAM() 사용 예시는 블루프린트에 게임플레이 요소 노출하기 문서를 참조하세요.