UE4设置人物移动和人物视角

本节我们先讲解 UE4 人物移动的设置,然后再讲解 UE4 人物视角的设置。

UE4 设置人物移动

  1. 打开 UE4 编辑器,点击“编辑”然后点击“项目设置”:

  1. 选择“输入”:

  1. 点击“AxisMappins” 的 添加按键输入,我们创建 6 个按键输入:

  1. 更改按键和按键的名字,这里一个按键对应一个名字。你可以通过添加多个名字不同但是按键相同的方法去绑定不同的事件。

  1. 设置完成后,我们打开 VS 编辑器,在“PlayingCharacter.h”文件下声明 4 个函数:

这四个函数就是我们要实现移动功能的函数,我们来到 .cpp 文件去实现这四个函数

void APlayingCharacter::MoveForward(float val)
{AddMovementInput(GetActorForwardVector(), val);
}
void APlayingCharacter::MoveBack(float val)
{AddMovementInput(-GetActorForwardVector(), val);
}
void APlayingCharacter::MoveRight(float val)
{AddMovementInput(GetActorRightVector(), val);
}
void APlayingCharacter::MoveLeft(float val)
{AddMovementInput(-GetActorRightVector(), val);
}

AddMovementInput() 这个函数会根据第一个参数的值去移动角色,第二个参数是个浮点数,如果这个数是 1 的话,那么它会按照第一个参数的方向去添加,如果第二个参数是 -1 的话,那么会往第一个参数的反方向去添加。

那么这个 val 变量的值怎么来的呢,它在我们设置按键输入的时候就已经设定好了,默认值是 1。

GetActorForwardVector() 是在世界空间中从此 A 角色获取前向的向量,它获取的是 X 轴的向量。

GetActorRightVector() 同上,它获取的是 Y 轴的向量。

写好这 4 个函数之后,我们还要进行按键绑定,把我们的函数和我们的按键绑定在一起。

在“SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)”函数里,我们添加 4 个按键绑定。

InputComponent 是一个组件,它用来绑定按键输入。

第一个参数要和我们当初设置按键绑定的名字要一样,第二个参数是一个指针类型,我们直接给 this,第三个参数就是我们要绑定的函数。

UE4 设置人物角色

我们同样在 SetupPlayerInputComponenet 函数中写入我们控制视角的代码。

AddControllerYawInput() 和 AddControllerPitchInput() 是 UE4 已经为我们封装好的移动视角的函数。

FRotator

Yaw 表示 摇头 就是绕 Z 移动;

Pich 表示 点头 就是绕 Y 移动;

Roll 你可以想象成左右晃脑,绕 X轴运动。

这三个变量组成了 UE4 里面所有物体的旋转方向,它是一个结构体叫 FRotator。

写完上面的代码后,点击编译,回到 UE4 点击 Play,我们会发现人物可以前后左右移动和左右上下看。

完整代码:

APlayingCharacter.h
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "PlayingCharacter.generated.h"
UCLASS()
class GAMEPROJECT_API APlayingCharacter : public ACharacter
{GENERATED_BODY()
public:// Sets default values for this character's propertiesAPlayingCharacter();
protected:// Called when the game starts or when spawnedvirtual void BeginPlay() override;
public:   // Called every framevirtual void Tick(float DeltaTime) override;// Called to bind functionality to inputvirtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;void MoveForward(float val);//人物往前移动void MoveBack(float val);    //人物向后void MoveRight(float val);    //人物向右void MoveLeft(float val);    //人物向左
};
APlayingCharacter.Cpp
// Fill out your copyright notice in the Description page of Project Settings.
#include "PlayingCharacter.h"
// Sets default values
APlayingCharacter::APlayingCharacter()
{// Set this character to call Tick() every frame.  You can turn this off to improve performance if you don't need it.PrimaryActorTick.bCanEverTick = true;
}
// Called when the game starts or when spawned
void APlayingCharacter::BeginPlay()
{Super::BeginPlay();}
// Called every frame
void APlayingCharacter::Tick(float DeltaTime)
{Super::Tick(DeltaTime);
}
// Called to bind functionality to input
void APlayingCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{Super::SetupPlayerInputComponent(PlayerInputComponent);InputComponent->BindAxis("MoveForward", this, &APlayingCharacter::MoveForward);InputComponent->BindAxis("MoveBack", this, &APlayingCharacter::MoveBack);InputComponent->BindAxis("MoveRight", this, &APlayingCharacter::MoveRight);InputComponent->BindAxis("MoveLeft", this, &APlayingCharacter::MoveLeft);InputComponent->BindAxis("Turn", this, &APawn::AddControllerYawInput);InputComponent->BindAxis("LookUp", this, &APawn::AddControllerPitchInput);
}
void APlayingCharacter::MoveForward(float val)
{AddMovementInput(GetActorForwardVector(), val);
}
void APlayingCharacter::MoveBack(float val)
{AddMovementInput(-GetActorForwardVector(), val);
}
void APlayingCharacter::MoveRight(float val)
{AddMovementInput(GetActorRightVector(), val);
}
void APlayingCharacter::MoveLeft(float val)
{AddMovementInput(-GetActorRightVector(), val);
}

UE4设置人物移动和人物视角相关推荐

  1. 学画画的新手怎么画人物?画人物有哪些技巧!

    本文由"学美术上美术集网校"原创,图片素材来自网络,仅供学习分享 学画画的新手怎么画人物?画人物有哪些技巧! 制作角色表 字符表是一组字符,例如站立图片,面部表情,姿势,所有物和配 ...

  2. UE4设置默认游戏模式和关卡

    UE4设置默认游戏模式和关卡 首先我们回到 VS 编辑器,在"内容浏览器"里面选择"内容(Content)": 新建一个存放资源的文件夹名为"Asse ...

  3. 如何绘画漫画人物眼睛?人物眼睛画法教程!

    如何绘画漫画人物眼睛?人物眼睛画法教程!眼睛是人物最重要的脸部部位之一,配合着发型,眼睛能直接说出人物的性格特征.为了帮助有兴趣的朋友理解大多数人会选择绘画培训机构,那么今天小编就带大家来看看手绘古风 ...

  4. 计算机人物事迹范文,人物事迹通讯稿范文.doc

    人物事迹通讯稿范文 人物事迹通讯稿范文 篇一: 新闻通讯稿范文写通讯稿 ?1.通讯的概念 通讯,是运用叙述.描写等多种手法,具体.生动.形象地反映新闻事件或典型人物的一种新闻报道形式.它是记叙文的一种 ...

  5. java 绘制角色_如何设计角色人物?角色人物绘制设计教程

    轻微课来源:轻微课APP(一个专门学画画的人气平台) 如何设计角色人物?角色人物绘制设计教程!成功设计一个角色需要你拥有全面的技法和一些基本的知识.一个成功的角色设计一方面表现在设计上,另一方面表现在 ...

  6. UE4-蓝图-角色的移动,视角控制(四)人物瞄准偏移(视角自由转动)

    类似于绝地求生的Alt键的功能,这里不采用案件方式,自己需要用也可以作为案件事件来做 创建瞄准偏移 使用的骨骼也是人物的骨骼,保持一致.对于瞄准偏移和瞄准偏移1D的解释和混合空间那里一样的. 打开瞄准 ...

  7. UE4 设置视角模糊的4种方法

    1.PostProcessVolume 100是刚好清晰,100一下开始模糊,越小越模糊 效果图如下: 该值越大越模糊 效果图如下: 还有一种就是用CineCamera设置焦距来获取视角模糊 最后一种 ...

  8. UE4在UI上显示人物模型

    您可能会意识到,不可能在UMG小部件(在写作时从API 4.7.4开始)直接渲染3D对象/蓝图/网格. 我会尽量清楚地说明我是如何实现的.这是我们试图得到的结果:[gif即将推出] 基本原理是将3D对 ...

  9. Unity3D中实现人物的第一人称视角

    打开unity创建一个场景地图可以添加一个Plane作为地面 在Hierarchy视图中右键创建一个胶囊体(Capsule)作为Player,添加好后重置胶囊体的位置,并且调整胶囊体在一个合适的位置. ...

  10. UE4 AI+行为树实现人物漫游巡逻效果

    一.目录结构 命名规则说明: AIC:AI控制器 BB:黑板 BT:行为树 BTT:任务 二.蓝图设置 1.AIController设置: 2.黑板设置: 3.Tasks设置: 注意: 1.可通过调整 ...

最新文章

  1. 爱情,没有对不起;只有不珍惜……[
  2. 手机进水的正确处理方法?
  3. latex伪代码添加注释_Latex中文期刊投稿使用:以《系统工程学报》为例
  4. Perl文件句柄引用
  5. servlet源码查看
  6. android功耗优化(2)--对齐唤醒
  7. 深圳宝安图书馆官网错误 HTTP Status 500 - Servlet.init() for servlet spring threw exception...
  8. 基于vue的video播放组件的后续修改
  9. 计算机与科学a,[第一单元] 计算机与计算机科学-课文A参考译文
  10. A NEW THREE-STAGE CURRICULUM LEARNING APPROACH TO DEEP NETWORK BASED LIVER TUMOR SEGMENTATION
  11. Axure 9怎么导入阿里巴巴矢量图标的Iconfont图标
  12. html转微信公众号,通过htmlparse动态抓取微信公众号的文章
  13. FinsTCP协议的Java Socket
  14. 网络安全求职该怎么写简历?
  15. C语言16进制乘法怎么算,16进制数之间的加法怎么算
  16. 2021美赛C题解题思路(Confirming the Buzz about Hornets)
  17. 实现浏览器多标签页通信
  18. jpa blob mysql_Spring让BLOB 和Clob数据操作变得简单易行
  19. 揭开500亿“区块链”骗局
  20. 技术人的“灵魂三问”,阿里工程师如何解答?

热门文章

  1. PHP 梯形图,初学者必掌握plc梯形图解释
  2. 华为云云原生之多云管理利器Karmada从0到1的实操【与云原生的故事】
  3. mysql 回滚sql_Mysql误操作后使用binlog2sql快速回滚
  4. 今日不谈股市, 谈谈财政部副部长廖晓军不降个税问题
  5. 4.1关系运算符和逻辑运算符
  6. 俄罗斯方块c语言程序报告摘要,俄罗斯方块c语言程序
  7. Code Review之前中后
  8. 制作QQ背景音乐链接
  9. Linux Capability探索试验
  10. 分布式技术(6) 后端接口设计方案