UE4 回合游戏项目 15- 生成玩家、控制玩家

在上一节(UE4 回合游戏项目 14- 添加敌人攻击)基础上继续完成生成玩家、控制玩家的功能

现在战斗地点基本完成,于是就需要制作玩家从外部走到指定地点,从而触发战斗。本节先完成

生成玩家、控制玩家的功能。

效果:

步骤:

1.我们首先需要一个可控制的玩家角色,由WASD和鼠标进行控制

既然所有的玩家都是可控制,我们就把这些控制函数都写在玩家类里面

双击打开playerRole

 WASD按键和鼠标需要在项目设置中设置

 找到引擎-》输入中的操作映射和轴映射

 添加一个跳跃的操作映射

 只要这里加入了,在蓝图中都可以使用,如:在playerRole中的事件图表中搜索跳跃,可以看到输入-》操作事件-》跳跃

 

 再次打开项目设置,对轴映射做如下设置:

鼠标xx可以理解为鼠标横向移动,鼠标yy可以理解为鼠标纵向移动 

项目设置完后,下面给playerRole添加输入轴事件

2.在playerRole中输入鼠标xx,来添加一个名为鼠标xx的坐标轴事件

 

 同样的,添加一个名为鼠标yy的坐标轴事件

3.添加如下节点表示:鼠标横向移动增加的是Yaw值(绕z轴旋转),鼠标纵向移动增加Pitch值(绕y轴旋转)

 这样玩家的鼠标控制就建好了,下面是键盘控制

4.添加如下两个节点

 这两个控制玩家的移动,通常是放到CharacterMovement里面的值

 因此需要添加移动输入节点,World Direction向前向量,scale Value为旋转的值

 添加如下节点来获取玩家控制器的向前向量和旋转值

 同样的键盘AD需要获取的是向右向量

 这样玩家的控制就设置好了

有了玩家的控制,我们还需要添加一个可控制的玩家,我们先设置玩家出生地

5.随便向场景中添加一个空Actor

 打开关卡蓝图

在场景中选中这个空Actor后,在关卡蓝图中创建一个对这个空Actor的引用

 然后获取这个空Actor的位置

 然后需要在这个地点添加一个玩家

 有了玩家后就需要设置生成的这个AI是我们控制的玩家,因此需要控制器

6.添加如下节点,获得玩家控制器,然后让控制器控制指定的角色,这里就是来控制生成的AI,也就是玩家

 因为摄像机是跟随角色的,所以删除如下节点

 ↓

 

 此时运行游戏玩家是可以移动的,但是没有摄像机,因此需要给玩家添加摄像机

7.打开playerRole,添加一个弹簧臂组件

 然后在弹簧臂组件中添加一个摄像机组件作为它的子项

在视口中将弹簧臂向上移动一些,然后向下旋转5°

 

运行游戏,可以看到玩家可以在开放世界自由活动,但是右下角存在菜单选项,因此需要去掉它  

8.有菜单是因为游戏开始运行就进入了战斗

因此打开战斗场景,删除下图所示连线

 后面我们通过创建一个事件(当玩家进入指定区域)来触发战斗

然后还有个问题是只有鼠标按住才能旋转视角

9.打开玩家控制器playerController1,取消显示光标

此时运行游戏,视角可以左右移动,但是无法上下移动

10.打开playerRole,点击类默认值,然后在细节中勾选使用Pawn控制旋转

 

 选中CharacterMovement

 在细节中勾选将旋转朝向运动

 点击playerRole(自身)

 取消勾选使用控制器旋转Yaw,勾选这个使用控制器旋转Yaw会使得视角跟随鼠标移动而移动(设计类游戏一般会勾选这个)

此时还有一个问题就是鼠标向前推,视角会向下移动,向后推,视角会向上移动。我们可以修改引擎-》输入来解决这个问题,将鼠标Y的值改为-1

此时运行游戏,可以看到文章开头的效果了

猜你喜欢

转载自blog.csdn.net/ChaoChao66666/article/details/127791765