구성
C++
언리얼 엔진(UE)에서 C++로 코드를 작성하려면 Windows의 경우 Visual Studio를 다운로드하고, macOS의 경우 Xcode를 설치해야 합니다. 새 C++ 프로젝트를 생성하면 UE가 자동으로 Visual Studio 프로젝트 파일을 생성합니다.
UE 프로젝트에서 Visual Studio에 액세스하는 방법은 두 가지가 있습니다.
콘텐츠 브라우저에서 C++ 클래스를 더블클릭하여 Visual Studio에서 엽니다.
메인 메뉴에서 툴(Tools) > Visual Studio 열기(Open Visual Studio)로 이동합니다. 이 옵션은 프로젝트에 C++ 클래스가 하나 이상 있는 경우에만 표시됩니다.
UE에서의 중요한 차이점: UE의 새 버전을 다운로드한 후 또는 디스크의 소스 파일 위치를 수동으로 변경하는 경우와 같이 Visual Studio 프로젝트 파일을 수동으로 새로 고쳐야 하는 경우가 있습니다. 이 작업은 두 가지 방법으로 수행할 수 있습니다.
UE의 메인 메뉴에서 툴(Tools) > Visual Studio 프로젝트 새로고침(Refresh Visual Studio Project)을 선택합니다.
프로젝트 디렉터리에서 .uproject 파일을 우클릭하고 Visual Studio 프로젝트 파일 생성(Generate Visual Studio project files)을 선택합니다.
자세한 내용은 개발 구성을 참조하세요.
블루프린트
블루프린트 스크립팅을 사용하려면 UE만 있으면 됩니다. 필요한 기능은 모두 언리얼 에디터에 내장되어 있습니다.
이벤트 함수 작성
MonoBehaviors로 작업해 봤다면 Start, Update, OnDestroy 메서드에 익숙할 것입니다. 아래는 UE의 액터 및 컴포넌트 행동과 그에 해당하는 Unity의 행동을 서로 비교한 것입니다.
Unity에는 다음과 같은 단순 컴포넌트가 제공될 수 있습니다.
public class MyComponent : MonoBehaviour
{
void Start() {}
void OnDestroy() {}
void Update() {}
}AActor
UE에서는 새 컴포넌트 타입만 코딩하는 것이 아니라 액터 자체에서 코드를 작성할 수 있습니다.
또한 액터에는 Unity의 Start, OnDestroy, Update 메서드와 비슷한 메서드가 있습니다.
C++
UCLASS()
class AMyActor : public AActor
{
GENERATED_BODY()
// Called at start of game.
void BeginPlay();
// Called when destroyed.
void EndPlay(const EEndPlayReason::Type EndPlayReason);
블루프린트
UActorComponent
UE의 컴포넌트는 개념적으로는 MonoBehaviors와 비슷하지만 다른 메서드가 포함되어 있습니다.
C++
UCLASS()
class UMyComponent : public UActorComponent
{
GENERATED_BODY()
// Called after the owning Actor was created
void InitializeComponent();
// Called when the component or the owning Actor is being destroyed
void UninitializeComponent();
블루프린트
추가 참고 사항
UE에서는 자손 메서드 내에서 부모 메서드를 명시적으로 호출해야 합니다. 예를 들어, Unity C#에서는
base.Update()를 사용하지만, UE C++에서는 액터의 경우Super::Tick(),컴포넌트의 경우 Super::TickComponent()를 사용합니다.UE C++에서 클래스는 다양한 접두사를 사용합니다. 가령
UObject서브클래스에는U를, 액터 서브클래스에는A를 사용합니다. 자세한 내용은 코딩 표준을 참조하세요.게임플레이 코딩 예시는 언리얼 엔진에서 게임플레이 생성하기를 참조하세요.