• UE4(unreal Engine)中使用蓝图类Actor创建开关门,并使用鼠标和键盘控制开关门


    UE4系列文章目录

    前言

    上一节中我们讨论了用蓝图来控制开关门,虽然可以实现效果,但是我们试想一下,如果在一个游戏关卡中,在一个迷宫如果中有成千上万门,而且门的模型不完全一样,我们又改怎么办,我们得创建或者复制成千上万的开关门,这几乎是不可能完成的任务。聪明的你一定想到:把门封装成一个类,那么我们就能重复使用。下面我就用蓝图类Actor来创建开关门,并使用鼠标和键盘控制开关门。
    先看下效果
    在这里插入图片描述

    一、具体步骤

    (一)自动开关门

    1.在内容浏览器空白地方点击鼠标右键,选中蓝图类
    在这里插入图片描述
    弹出的窗口中选择“Actor”
    在这里插入图片描述
    修改名称为:“Door_BP”
    在这里插入图片描述

    2.添加组件
    (1).添加门框:
    在内容浏览器中双击Door_BP,弹出视口,在视口中点击“添加组件”,然后选择“静态网格体组件”
    在这里插入图片描述
    修改名称为:DoorFrame,然后在右边的"细节"面板中,点击静态网格体,在搜索中输入:doorFrame,选中SM_DoorFrame,生成门框

    在这里插入图片描述
    在这里插入图片描述
    (2).添加门:
    用同样的方法:在添加组件中选中DoorFrame,然后在右边的"细节"面板中,点击静态网格体,在搜索中输入:Door,选中SM_Door,生成门
    在这里插入图片描述
    (3).添加盒体碰撞:
    点击"添加组件",在搜索组件栏中输入box,选择Box Collision
    在这里插入图片描述
    调整盒体碰撞的大小和位置,使其包裹住门,注意Box和Door要在同层级
    在这里插入图片描述
    (4).为盒子碰撞添加事件
    在左边组件栏中选中"Box",然后在右边的细节面板中拉到最底层的”事件"中,分别选择“组件开始重叠时”,“组件结束重叠时”
    在这里插入图片描述
    (5)添加时间轴
    在"事件图表"视口中,单击鼠标右键弹出窗口,在窗口搜索栏中输入“时间轴”,然后选择“添加时间轴”
    在这里插入图片描述
    在这里插入图片描述
    (5)设置时间轴属性
    双击时间轴,弹出时间轴模板窗口,然后点击"f+“图标
    在这里插入图片描述
    (6)添加2个关键帧
    点击鼠标右键弹出小窗口,选择“添加关键帧到CurveFloat_0”
    在这里插入图片描述
    设置第0关键帧,帧长度设置为1.5,时间为0.0,值为0.0
    在这里插入图片描述
    点击鼠标右键弹出小窗口,选择“添加关键帧到CurveFloat_0”,曲线中生成第二个点,点击第二个点,设置时间为:1.5,值85.0
    其中85.0是门开合的角度
    在这里插入图片描述
    鼠标右键点击第一个点,勾选"自动”,时时间曲线平滑
    在这里插入图片描述

    (7).设置门事件
    在添加组件视口中,把“Door”拖入到事件图表中
    在这里插入图片描述
    在door对象上添加相对旋转事件,用鼠标左键从Door右边的蓝色圆圈,拖拽出一条线弹出窗口,然后再搜索栏中输入“setrel”,选择设置相对位置旋转
    在这里插入图片描述
    在设置”相对旋转”窗口,然后鼠标右键选中“New Rotation”->“分割结构体引脚”
    在这里插入图片描述
    弹出“New Rotation Y (Pitch)” 和"New Rotation Z(Yaw)"
    在这里插入图片描述
    (8)连接所有组件的事件
    在这里插入图片描述
    注意:这里门要是设置相对旋转,
    1.如果设置成本地旋转就会发现门一直在转
    在这里插入图片描述
    在这里插入图片描述

    2.如果设置Actor旋转,
    在这里插入图片描述

    3.如果设置场景旋转(set World rotatopm) 是整个门包括门框都在旋转
    在这里插入图片描述
    在这里插入图片描述

    (二)使用键盘开关门

    1.加入gate节点
    鼠标右键弹出窗口,在搜索栏输入"gate",选择Gate
    在这里插入图片描述

    在这里插入图片描述
    2.加入键盘E
    鼠标右键弹出窗口,搜索栏输入“键盘 e ”
    在这里插入图片描述
    连接事件
    在这里插入图片描述
    3.加入开启和关闭节点
    输入“enable input”
    在这里插入图片描述
    在这里插入图片描述

    输入 disable input
    在这里插入图片描述
    在这里插入图片描述

    1. 加入玩家控制器
      输入 get player controoller
      在这里插入图片描述
      在这里插入图片描述
      5.加入分支节点:flipflop
      在这里插入图片描述
      6.连接事件
      在这里插入图片描述

    (三)使用鼠标开关门

    1.在组件视口选中Door
    在这里插入图片描述
    2.在细节面板选择“点击时”
    在这里插入图片描述
    在这里插入图片描述
    连接事件
    在这里插入图片描述
    3.运行时显示鼠标
    (1)打开世界设置面板
    在这里插入图片描述
    在世界场景设置->游戏模式重载->ThirdPersonGameMode
    在这里插入图片描述
    在这里插入图片描述
    在玩家控制器类,点击后面的“+”
    在这里插入图片描述
    点击“确定”
    在这里插入图片描述
    在细节面板中,勾选"订点击事件”和"显示鼠标光标"
    在这里插入图片描述

    总结

    最后的事件图标蓝图
    在这里插入图片描述
    鼠标点击开关门的效果
    在这里插入图片描述

  • 相关阅读:
    数据结构与算法编程题8
    徐建鸿:深耕中医康养的“托钵行者”
    Linux进阶-控制硬件设备
    【c++】noexcept关键字
    Rust 从入门到精通06-语句和表达式
    【Java】Spring boot快速上手(三)前后端分离实现小程序登录(接口篇)
    【leetcode热题Hot100】——任务调度器
    在Qt使用QTcpServer和QTcpSocket及多线程时安全释放内存的几个注意点
    Python中元组的用法2-2
    postgresql源码学习(35)—— 检查点⑤-检查点中的XLog清理机制
  • 原文地址:https://blog.csdn.net/aoxuestudy/article/details/126486295