人称游戏 ——(2)人物移动"/>
UE4第一人称游戏 ——(2)人物移动
1. 轴映射设置
如下四个映射
MoveForWard
MoveRight
Turn
LookUp
2. 移动
头文件添加下面两行
void MoveForward(float value);void MoveRight(float value);
有番茄助手的话,直接右键添加实现,因为我这里已经实现过了,显示灰色。没有实现的时候是白色的点一下就可以了。
Cpp文件中添加如下代码
PlayerInputComponent->BindAxis(TEXT("MoveForward"), this, &AMainCharacter::MoveForward);PlayerInputComponent->BindAxis(TEXT("MoveRight"), this, &AMainCharacter::MoveRight);
AddMovementInput(UKismetMathLibrary::GetForwardVector(GetControlRotation()), value);
AddMovementInput(UKismetMathLibrary::GetRightVector(GetControlRotation()), value);
头文件添加这两个
#include "Kismet/KismetMathLibrary.h"
#include "Components/InputComponent.h"
右键创建基于角色c++的蓝图
蓝图里面选择玩家0
编译之后运行,发现可以控制玩家移动,不能上下左右看
3. 视角变换
Cpp文件添加如下2行代码即可
PlayerInputComponent->BindAxis(TEXT("Turn"), this, &AMainCharacter::AddControllerYawInput);PlayerInputComponent->BindAxis(TEXT("LookUp"), this, &AMainCharacter::AddControllerPitchInput);
添加玩代码,编译后发现可以左右转不能上下转,于是在这里加这行代码
SpringArm->bUsePawnControlRotation = true;
注意这里两行代码顺序,上图编译之后发现前后移动不顺畅,改了顺序之后可以移动,但是上下还是不能旋转
来到蓝图发现这里还是没有被修改,可能是哪里出问题了,于是直接修改蓝图里面发现可以移动
更多推荐
UE4第一人称游戏 ——(2)人物移动
发布评论