• 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

     

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

  • 相关阅读:
    一幅长文细学算法(一)——C++STL
    Apache zookeeper kafka 开启SASL安全认证
    29 WEB漏洞-CSRF及SSRF漏洞案例讲解
    SOCKS5代理在全球电商、游戏及网络爬虫领域的技术创新
    基于seata的分布式事务
    为什么同样是测试,他能年薪50W?
    宝宝洗衣机买什么样的好?诚意推荐四款实力超群的婴儿洗衣机
    [手写spring](1)构建框架,实现包扫描
    css知识学习系列(2)-每天10个知识点
    李沐机器学习入门
  • 原文地址:https://blog.csdn.net/ChaoChao66666/article/details/127791765