【UE4 RTS游戏】03-摄像机运动_旋转视角
创始人
2024-05-31 02:01:26
0

效果

可以通过WASD控制“CameraPawn”的移动;通过鼠标中键旋转视角;通过alt+鼠标中键将视角回归默认值;通过shift加速移动。

步骤

  1. 打开“CameraPawnController”,给如下节点添加注释,命名为“MovementX”

  1. 接下来开始开始编辑“MovementY”相关的逻辑

首先从“MovementX”中复制一些节点

新建一个宏,命名为“MovementY”

将“MovementX”中除了输入输出节点外的其它节点全部复制到“MovementY”中,然后给输入输出节点拖入引脚。

重命名输入输出的引脚

将“AxisValue”דMoveSensitivity”דSpeedMultiplier”的值赋给创建的新向量的Y

  1. 回到事件图表中,运用宏“MovementY”

此时已经可以控制“CameraPawn”在X和Y轴上移动了:

  1. 在项目设置中,添加一个操作映射

  1. 返回“CameraPawnController”,添加一个浮点型变量,命名为“PanSensitivity”,设为公有,表示旋转灵敏度

设置默认值为5

在事件图表中添加如下节点:

当按下鼠标中键时,设置“CameraPawn”无法移动。把鼠标X的值与旋转灵敏度相乘再加上“CameraPawn”当前的Z轴的旋转值,将这个旋转值结果重新赋给“CameraPawn”的旋转。

此时运行游戏效果如下所示:

将“Pan X”的节点复制一份,作为“Pan Y”只需更改如下两个部分

将pitch的值限制在-15~45之间

此时的运行效果如下所示:

但此时的的问题是,如果以一个倾斜的视角再控制“CameraPawn”进行移动后,“CameraPawn”在Z轴上的位置就会发生改变,也就是会“遁地”或“升天”

  1. 打开“CameraPawn”,选中“Sphere”,然后将位置Z的值从100改为0

再回到“CameraPawnController”的事件图表中,添加如下标注的节点。其实意思就是让宏“Movement Y”输出的transform中的location中的Z轴的值固定为100。

此时再运行游戏就不会出现之前的bug了。

  1. 再次打开项目设置,添加一个操作映射,勾选Alt(意思是只有按下Alt键再按鼠标中键才会执行PanRest事件)

再回到“CameraPawnController”的事件图表中,添加如下节点:

此时我们按下alt+鼠标中键,就可以将视角重新设置回默认值

  1. 如果我们想按住shift来加速移动“CameraPawn”,可以添加如下节点

最终效果:

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...