Перейти к основному содержимому

Справочник по Unreal Engine

Назначение

Горячие клавиши, макросы, консольные команды и форматы Unreal Engine для ежедневной работы. Учебный курс: Unreal Engine, раздел Разработка игр.

Содержание


Блок 1. Lifecycle, Actor, Component, Reflection

Actor lifecycle (основные события)

Метод / событиеКогдаПримечания
Constructor (C++)Создание объекта (CDO и экземпляры)Только настройка defaults; не вызывайте GetWorld()
PostInitializeComponentsПосле инициализации компонентовРедко переопределяют
BeginPlayСтарт игры для актораАналог Start в Unity; мир уже доступен
Tick(float DeltaTime)Каждый кадрОтключите в конструкторе: PrimaryActorTick.bCanEverTick = false
EndPlay(EEndPlayReason::Type)Уничтожение, смена уровня, выходОчистка подписок, таймеров
OnConstructionВ редакторе при изменении актораНе вызывается в packaged build по умолчанию

Component: BeginPlay / Tick / EndPlay у UActorComponent — если компонент включён и актор в игре.

Иерархия (кратко)

ТипРоль
UObjectБаза: GC, serialization, reflection
AActorОбъект в UWorld
APawnУправляемое тело
ACharacterPawn + UCharacterMovementComponent + capsule
APlayerControllerВвод, камера, HUD
AGameModeBaseПравила (сервер)
UActorComponentЛогика без transform
USceneComponentTransform в иерархии компонентов

Макросы reflection (C++)

МакросНазначение
UCLASS(Blueprintable)Класс наследуется в Blueprint
UCLASS(BlueprintType)Можно использовать как тип переменной в BP
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="…")Поле в Details и Blueprint
UPROPERTY(Replicated)Сетевая репликация (нужен GetLifetimeReplicatedProps)
UFUNCTION(BlueprintCallable)Вызов из Blueprint
UFUNCTION(BlueprintImplementableEvent)Реализация только в BP
UFUNCTION(Server, Reliable)RPC на сервер
UFUNCTION(Client, Reliable)RPC на владельца клиента
UFUNCTION(NetMulticast, Reliable)RPC всем клиентам
GENERATED_BODY()Обязателен в теле UCLASS

UHT / UBT: после изменения .h с U* макросами — пересборка. Файл *.generated.h подключается последним в заголовке.

Blueprint vs C++

BlueprintC++
ВыполнениеBlueprint VM (байткод)Нативный код
СкоростьМедленнее на hot pathМаксимальная
ИтерацияБыстрая в редактореДольше (компиляция)
Доступ к движкуЧерез BlueprintCallable APIПолный

Блок 2. Коллизии, физика, trace

Ответы коллизии

ОтветПоведение
IgnoreНет взаимодействия
OverlapСобытие пересечения, без физической блокировки
BlockСтолкновение, физика останавливает объект

Object Types и Channels

  • Object Type — «кто я» (WorldStatic, Pawn, Vehicle…).
  • Trace Channel — для line/sphere trace (Visibility, Camera, custom).
  • Object Channel — для object queries между типами.

Настройка: Project Settings → Collision или per-component Collision Presets.

Line trace (пример)

FHitResult Hit;
FCollisionQueryParams Params;
Params.AddIgnoredActor(this);

bool bHit = GetWorld()->LineTraceSingleByChannel(
Hit,
Start,
End,
ECC_Visibility,
Params
);

Chaos (UE5)

Физика по умолчанию — Chaos (не PhysX). UPrimitiveComponent + Simulate Physics или forces через AddImpulse / AddForce.


Блок 3. Сеть: репликация и RPC

ПонятиеОписание
AuthorityСервер — источник правды для gameplay
ReplicationАвтосинхронизация UPROPERTY(Replicated)
RPCРазовый вызов функции на другой machine
RelevancyКлиент получает обновления только «важных» акторов
void AMyActor::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME(AMyActor, MyReplicatedInt);
DOREPLIFETIME_CONDITION(AMyActor, MyConditionalFloat, COND_OwnerOnly);
}

Правило: меняйте replicated-переменные на сервере. RPC Server — клиент просит сервер; Client — сервер шлёт одному клиенту.


Блок 4. Редактор, консоль, профилирование

Горячие клавиши (Viewport)

КлавишаДействие
W / E / RMove / Rotate / Scale
FFocus на выбранном
GGame View (без gizmo редактора)
Alt + PPlay in Editor
EscStop PIE

Консоль (~)

КомандаНазначение
stat unitFrame time: game, GPU, draw
stat gpuРазбивка GPU
stat scenerenderingСтоимость рендера сцены
show collisionВизуализация коллизий
r.ScreenPercentage 100Масштаб рендера (TSR/DLSS влияют отдельно)
profilegpuGPU capture (Ctrl+Shift+,)

Shader / PSO stutter

  • Project Settings → Rendering → Shader Pipeline Cache — precaching PSO.
  • Прогон уровней с PSO Precaching / сохранение Pipeline Cache перед релизом.

Блок 5. Проект, сборка, ассеты

Файлы

ПутьСодержимое
*.uprojectJSON: имя, модули, plugins
Config/Default*.iniНастройки по умолчанию
Content/.uasset, .umap (бинарные ассеты)
Source/ModuleName/C++ модуль (ModuleName.Build.cs, *.cpp, *.h)
Plugins/Локальные плагины

Типы ассетов (частые)

АссетНазначение
Static MeshСтатическая геометрия
Skeletal MeshСкелетная модель
Material / Material InstanceШейдер и параметры
BlueprintВизуальный класс или логика
Level / WorldКарта (.umap)
Data TableТабличные данные (CSV-подобные)

Сборка

  1. Compile — C++ в редакторе.
  2. File → Package Project — финальная сборка под платформу.
  3. Для shipping: Staging, Shader Library, Pak файлы.

Enhanced Input (UE5)

ТипРоль
UInputActionДействие (Jump, Move)
UInputMappingContextПривязки клавиш/геймпада
UEnhancedInputComponentПодписка в SetupPlayerInputComponent

Legacy BindAction / BindAxis — устаревающий путь; новые шаблоны используют Enhanced Input.


См. также

Другие статьи этого же раздела в боковом меню (как на странице «О разделе»).