В течение этого ознакомительного урока мы разберём стандартный проект First Person Shooter предоставленный в качестве шаблона Epic Games.
Создание проекта
1) Откройте Project Browser 2) Перейдите на вкладку New Project 3) Выберите Blank на вкладке Blueprint 4) Имя нашего проекта FPS 5) Также укажите No Starter Content, так как мы всё добавим сами 6) Нажмите Create Project
После того как переместились в редактор надо сохранить карту
1) Правой кнопкой мыши на папке с именем Content > New Folder 2) Назовём папкуMap 3) Перейдём File > Save As и выберем папку Map 4) Имя нашей карты FirstPersonExampleMap 5) Нажмите Save
Установим нашу карту по умолчанию при запуске проекта
1) Перейдём в Edit > Project Settings 2) Выберем Maps and Modes 3) Затем выберем FirstPersonExampleMap в Default Maps > Game Default Map 4) Закроем Project Settings
Добавление GameMode
GameMode содержит описание самой игры, такие как правила игры, условия победы и т.д. Он также устанавливает классы по умолчанию, чтобы использовать для некоторых основных базовых типов геймлея, в том числе Pawn, PlayerController и HUD.
1) Перейдём в File > Add Code To Project 2) Выберем GameMode и нажмём Next 3) Имя FPSGameMode 4) Нажмите Create Class 5) Дождитесь пока к вашему проекту добавятся все необходимые компоненты
3) Установим наш FPSGameModeпо умолчанию перейдя в Edit > Project Settings
4) Выберем Maps and Modes 5) Затем выберем FPSGameModeв Default Modes > Default GameMode
6) Закроем Project Settings
Если вы хотите проверить правильно ли вы подключилиGameMode, то добавьте следующий код:
В FPSGameMode.h
virtual void StartPlay() override;
ВFPSGameMode.cpp
void AFPSGameMode::StartPlay()
{
Super::StartPlay();
if (GEngine)
{
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("This is FPSGameMode"));
}
StartMatch();
}
На экране появится надпись желтым цветом This is FPSGameMode. После проверки удалите этот код.
Добавление персонажа
Теперь создадим персонажа, которым будем управлять.
1) Перейдём в File > Add Code To Project 2) Выберем Character и нажмём Next 3) Имя FPSCharacter 4) Нажмите Create Class Удалите все присутствующие методы в классах кроме конструктора. Мы добавим только нужные нам.
5) Добавьте в FPSGameMode.cppстроку после других#include
7) В папке Contentсоздать папкус именемBlueiprint 8) Затем перейти в C++ Classes > FPS 9) Найти класс FPSCharater нажать правой кнопкой мыши и выбрать Creat Blueprint class based on FPSCharater и выбрать нашу папку Blueiprint
Теперь при запуске игры вы сможете смотреть через камеру Charactera, но движение ещё не настроено.
Передвижение с помощью кнопок WASD.
Теперь настроим управление Charactera.
1) Перейдите в Edit > Project Settings и выберите Input 2) Под Bindings нажмите на плюс рядом с Axis Mappings 3) Сделайте как на картинке для всех кнопок
4) Закройте меню Project Settings
Класс Character имеет функцию с именем SetupPlayerInputComponent, которая вызывается, когда PlayerController захватывает Character. Мы переопределим эту функцию, чтобы связать наши собственные обработчики осей для MoveForward и MoveRight.
1) В FPSCharacter.h, добавьте следующее в protectedсекцию