Настройка
C++
Чтобы писать код на C++ в Unreal Engine (UE), загрузите Visual Studio для Windows или установите Xcode для macOS. Когда вы создаёте проект на C++, UE автоматически создаёт для вас файлы проекта Visual Studio.
Существует два способа открыть Visual Studio из проекта UE:
В Каталоге ресурсов дважды щёлкните по классу C++, чтобы открыть его в Visual Studio.
В главном меню выберите Инструменты > Открыть Visual Studio. Этот пункт отображается только в том случае, если ваш проект содержит хотя бы один класс C++.
Критическое отличие UE заключается в том, что иногда вам придётся вручную обновлять файлы проекта Visual Studio (например, после загрузки новой версии UE или при ручном изменении расположения исходных файлов на диске). Это можно сделать двумя способами:
В главном меню UE перейдите в меню Инструменты > Обновить проект Visual Studio.
Щёлкните правой кнопкой мыши по файлу .uproject в каталоге проекта и выберите пункт Сгенерировать файлы проекта Visual Studio.
Более подробную информацию см. в разделе Development Setup (Настройка разработки).
Сценарий Blueprint
Чтобы использовать сценарии Blueprint, вам понадобится только UE. В Unreal Editor встроены все необходимые функции.
Написание функций событий
Если ранее вы работали с Monobehaviours, вам должны быть знакомы методы Start, Update и OnDestroy. Ниже сравнивается поведение в Unity и эквивалентное поведение акторов и компонентов UE.
В Unity у вас может быть простой компонент, который выглядит следующим образом:
public class MyComponent : MonoBehaviour
{
void Start() {}
void OnDestroy() {}
void Update() {}
}AActor
В UE вы можете писать код для самого актора, а не только программировать новые типы компонентов.
Кроме того, акторы имеют методы, аналогичные методам Start, OnDestroy и Update в Unity.
C++
UCLASS()
class AMyActor : public AActor
{
GENERATED_BODY()
// Called at start of game.
void BeginPlay();
// Called when destroyed.
void EndPlay(const EEndPlayReason::Type EndPlayReason);
Сценарий Blueprint
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();
Сценарий Blueprint
Дополнительные примечания
В UE необходимо явно вызывать метод родительского класса из метода дочернего класса. К примеру, если в Unity на C# реализован метод
base.Update(), то в UE на C++ вы будете использоватьSuper::Tick()для акторов иSuper::TickComponent()для компонентов.В UE классы C++ имеют различные префиксы, например
Uдля подклассовUObjectиAдля подклассов акторов. Более подробную информацию см. в разделе Coding Standard (Стандарт программирования).Примеры программирования игрового процесса см. в разделе Creating Gameplay in Unreal Engine (Создание игрового процесса в Unreal Engine).