UE4学习笔记 FPS游戏制作2 制作第一人称控制器

章节目标

本章节将实现FPS基础移动

前置概念

Rotator与Vector:

Vector是用向量表示方向,UE中玩家的正前方是本地坐标系的(1,0,0),X轴正方向为前方,Y轴正方向为右方,Z轴正方向为上方
Roator是UE中的概念,通过旋转角度表示方向,Rotator的(0,0,0)等价于Vector的(1,0,0),Rotator的(0,0,90)等同于Vector的(0,1,0),沿Z轴往正方向转90度就是正右

roll与yaw与pitch

对应三个不同轴的旋转操作
Roll X轴
Yaw Z轴
Picth Y轴
在这里插入图片描述

添加按键输入

Edit/ProjectSetting/Input
在这里插入图片描述

蓝图结构

在这里插入图片描述

区域1

负责前后移动
在这里插入图片描述
inputAxisMoveForward是按键事件
GetControlRotation获取控制器的正前方向,用Rotater表示,GetForwardVector将Rotater转为Vector,然后交给移动节点

区域2

负责左右移动在这里插入图片描述

这里使用了两种方式实现左右移动
InuptAxisMoveRight获取鼠标按键
方法1 先用GetControlRotation获取正前方,然后用MakeRotator生成一个(0,0,90)的旋转,将两者用CombineRotators相乘,最后用GetForwardVector转为向量
方法2 先用GetControlRotation获取正前方,然后用GetRightVector直接获取右方

区域3

负责左右旋转
在这里插入图片描述

区域4

负责上下俯仰
在这里插入图片描述
仅仅有蓝图是不够的,俯仰时只有相机在动,模型不会跟随相机旋转
还需要做两步操作
1在左侧点击
在这里插入图片描述
然后在右侧Details面板里找到Pawn,勾选如下
在这里插入图片描述
2 在左侧Componets里点击AddCompoent,搜索添加Camera
在这里插入图片描述
在viewport窗口里将相机移动到合适的位置
在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-02-03 01:18:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-03 01:18:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-03 01:18:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-03 01:18:01       20 阅读

热门阅读

  1. SpringCloud引入父项目需要注意的地方

    2024-02-03 01:18:01       31 阅读
  2. Vite 官方文档速通

    2024-02-03 01:18:01       47 阅读
  3. 七、测试计划(软件工程)

    2024-02-03 01:18:01       28 阅读
  4. Hook 技术 相关的博客链接(还有一些其他的)

    2024-02-03 01:18:01       40 阅读
  5. 组播目的地址

    2024-02-03 01:18:01       33 阅读
  6. 公司就一个后端一个前端,有必要搞微服务吗?

    2024-02-03 01:18:01       32 阅读
  7. MYSQL学习笔记1

    2024-02-03 01:18:01       35 阅读
  8. Excel计算表达式的值

    2024-02-03 01:18:01       39 阅读