Первая часть Настройка Pawn(Customize a Pawn)
Конфигурация игрового управления в unreal engine 4
Конфигурация игрового управления (Configure Game Input)
Есть два типа отображения игрового входа, это действие и оси.
Привязка действия в игре надо предполагать что это нажатие на клавиши мыши или джойстика, а так же передвижение. Данные события отображают щелчёк мыши, двойной клик или удержание короткий промежуток времени. Дискретные действия, такие как прыжок, стрельба и так далее, являются хорошим кондидатом дла таких типов карт.
Оси отображения являются непрерывным входом, который реализуется с помощью джойстика или курсора мыши. Сообщение о текущем местоположении объекта сообщается каждый кадр, даже если не двигаться. Такие средства как стрельба, просмотр во круг себя или управление транспортом обрабатываются таким образом.
Управление меняется прям в проекте, через редактирование текущего проекта.
1) В Unreal Engine редакторе в меню “edit” необходимо найти пункт “Project Settings” 
После открытия меню, необходимо найти опцию “input” из раздела “engine”. Мы можем расширить категорию связью(Bindings), добавив ещё какое действие отображение (Action Mapping) и второе отображение осей (Axis Mappings).
Знак плюса после Action Mapping и Axis Mappings добавит ещё одно действие. Стрелка слево предназначена для скрытия или сопоставления наших действий. Для добавления дополнительного отображения входных данных, кликните на признак плюса в отображении. Ниже привидена таблица входных данных которые мы установим. Следует особо обратит внимание на отрицательные значения для S и A.
| Action Mapping | ||
| Grow | Space Bar |
| Axis Mapping | ||
| MoveX | W | 1.0 |
| S | -1.0 | |
| MoveY | A | -1.0 |
| D | 1.0 |
4) Теперь когда мы настроили наш вход в игру, давайте настроим наш MyPawn на уровне.
4) Теперь нам необходимо сопоставить MyPawn. Для того чтобы увидеть его в игре, необходимо добавить Static Mesh. Мы можем сделать это выбрав MyPawn в только что созданных компонентах, унаследованых в панепени деталей (Details), через выпадающий список в категории Static Mesh. Когда я сам попробовал выбрать элемент в Static Mesh, то список был пуст. Для того чтобы это исправить, достаточно перетащить тот предмет который будет у вас отображаться из BSP
5) Теперь можно вернутся в Visual Studio и написать код который будет реагировать на нажатие клавиш, которые мы установили в панели.
MyPawn.h
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "GameFramework/Pawn.h"
#include "MyPawn.generated.h"
UCLASS()
class HOWTO_PLAYERINPUT_API AMyPawn : public APawn
{
GENERATED_BODY()
public:
// Sets default values
// Устанавливаем значения по умолчанию
AMyPawn();
// Called when the game starts or when spawned
// Вызываем этот метод при старте игры
virtual void BeginPlay() override;
// Called every frame
// Вызываем метод который повторяется каждый кадр
virtual void Tick( float DeltaSeconds ) override;
// Called to bind functionality to input
// Вызываем функцию которая реагирует при нажатие клавиш
virtual void SetupPlayerInputComponent(class UInputComponent* InputComponent) override;
UPROPERTY(EditAnywhere)
USceneComponent* OurVisibleComponent;
};
MyPawn.cpp
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#include "HowTo_PlayerInput.h"
#include "MyPawn.h"
// Sets default values
AMyPawn::AMyPawn()
{
// Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
// Set this pawn to be controlled by the lowest-numbered player
AutoPossessPlayer = EAutoReceiveInput::Player0;
// Create a dummy root component we can attach things to.
// Создаём корневой элемент к которому будем прикреплять все наши элементы
RootComponent = CreateDefaultSubobject<USceneComponent>(TEXT("RootComponent"));
// Create a camera and a visible object
// Создаём камеру и видимые элементы
UCameraComponent* OurCamera = CreateDefaultSubobject<UCameraComponent>(TEXT("OurCamera"));
OurVisibleComponent = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("OurVisibleComponent"));
// Attach our camera and visible object to our root component.
//Offset and rotate the camera.
// Подкрепляем нашу камеру и видимый компонент к корневому компоненту
// Устанавливаем значение положения камеры
OurCamera->AttachTo(RootComponent);
OurCamera->SetRelativeLocation(FVector(-250.0f, 0.0f, 250.0f));
OurCamera->SetRelativeRotation(FRotator(-45.0f, 0.0f, 0.0f));
OurVisibleComponent->AttachTo(RootComponent);
}
// Called when the game starts or when spawned
void AMyPawn::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void AMyPawn::Tick( float DeltaTime )
{
Super::Tick( DeltaTime );
}
// Called to bind functionality to input
void AMyPawn::SetupPlayerInputComponent(class UInputComponent* InputComponent)
{
Super::SetupPlayerInputComponent(InputComponent);
}
Следующий урок
Связывание игровой логики и действий пользователя через программирование



