Подсказка Объект Controller и функции
AddMovementInput
определены в базовом классе
APawn
.
Поскольку класс
Avatar
происходит от
ACharacter
, который в свою очередь
происходит от
APawn
, мы можем свободно пользоваться всеми функциями-
членами в базовом классе
APawn
. Теперь вы видите красоту наследования и
повторного использования кода?
169 |
С т р а н и ц а
Упражнения Добавьте привязки осей и функции С++, чтобы двигать игрока влево и назад.
Примечание Вот подсказка: вам нужно только добавить привязки осей, если вы понимаете, что
идти назад это негатив ходьбы вперёд.
Решение Введите две дополнительные привязки осей, перейдя в Settings | Project Settings… | Input, как показано здесь:
В поле ввода Scale для S и A введите -1. Это инвертирует ось. Так что при нажатии
клавиши S в игре, игрок будет идти назад. Попробуйте!
Альтернативно, вы можете определить две совсем раздельные функции-члены в
вашем классе
AAvatar
,как показано далее и привязать клавиши A и S к
AAvatar::MoveLeft
и
AAvatar::MoveBack
, соответственно:
void AAvatar::MoveLeft( float amount )
{
if( Controller && amount )
{
FVector left = -GetActorRightVector();