【蓝图】p28-p29按键+鼠标点击实现开关门

p28-p29按键+鼠标点击实现开关门

  • p28,创建门的蓝图类
      • 创建一个Actor
            • 注意(当门的中心点不在边角上时)
      • 蓝图
      • 三个旋转区别
      • 按E键开关门
      • 使鼠标点击也可以开门
        • 可能遇到的bug问题

p28,创建门的蓝图类

actor和组件的区别、门的轴心点修改

创建一个Actor

【蓝图】p28-p29按键+鼠标点击实现开关门_第1张图片
添加一个静态网格体组件
【蓝图】p28-p29按键+鼠标点击实现开关门_第2张图片
创建一个门框
【蓝图】p28-p29按键+鼠标点击实现开关门_第3张图片
同理创建一个门Door
【蓝图】p28-p29按键+鼠标点击实现开关门_第4张图片

注意(当门的中心点不在边角上时)

创建一个Scene组件
【蓝图】p28-p29按键+鼠标点击实现开关门_第5张图片
把物体变换位置
【蓝图】p28-p29按键+鼠标点击实现开关门_第6张图片
这时只需要旋转Scene就可以旋转物体了
这种方法比较麻烦(注意要在3D建模软件里设置好坐标点)
继续之前的内容
组件搜索Box Collision(盒体碰撞),(注意,盒体碰撞要和Door在同一级,如果盒体碰撞在Door的下一级,开门时盒体碰撞会随门的旋转移动)
【蓝图】p28-p29按键+鼠标点击实现开关门_第7张图片
调整盒体碰撞大小
【蓝图】p28-p29按键+鼠标点击实现开关门_第8张图片

蓝图

在组件选中Box可以在细节中找到下图
【蓝图】p28-p29按键+鼠标点击实现开关门_第9张图片
创建组件开始重叠,组件结束重叠和时间轴
从组件拖拽一个Door到时间图表,拖拽出引脚搜索SetRelativeRotation(设置相对旋转)

三个旋转区别

SetActorRotation(设置Actor旋转)
SetRelativeRotation(设置相对旋转)
SetWorldRotation(设置场景旋转)
【蓝图】p28-p29按键+鼠标点击实现开关门_第10张图片
SetActorRotation的目标是Actor,整个蓝图类旋转,目标是自己
SetRelativeRotation和SetWorldRotation旋转的是蓝图类里的单个组件
SetRelativeRotation相对旋转是无论怎么转,自己都是(0,0,0)
SetWorldRotation世界坐标永远不会被改变,不会受物体改变而改变

继续绘制蓝图
蓝图如下图连接
【蓝图】p28-p29按键+鼠标点击实现开关门_第11张图片
把门拖拽到场景即可

按E键开关门

需要对开关门事件进行控制
【蓝图】p28-p29按键+鼠标点击实现开关门_第12张图片
在事件图表搜索Gate(门)(可以理解为必须有钥匙才可以打开门)
【蓝图】p28-p29按键+鼠标点击实现开关门_第13张图片
如图连接使玩家成为打开门的一个必须要素
创建蓝图E,连接Gate蓝图的Enter(进入)节点,但是这时进入游戏没有反应,需要新节点
创建蓝图节点Enable Imput(启用输入),Disable Input(禁用输入)和Get Player Controller(获取玩家控制器)
Get Player Controller(获取玩家控制器):告诉控制器是否开启了玩家键盘的输入
如下图连接
【蓝图】p28-p29按键+鼠标点击实现开关门_第14张图片
创建新结点Flip Flop(使玩家按下E键后第一次走A,第二次走B,第三次再走A,循环往复),如下图连接蓝图
【蓝图】p28-p29按键+鼠标点击实现开关门_第15张图片

使鼠标点击也可以开门

在组件选中Door,在细节面板找到On Clicked(点击时)(当鼠标点击之后触发事件)
用蓝图On Clicked替换掉蓝图E,在世界场景设置找到Game Mode(游戏模式),Game Mode Override(游戏模式重载)选择ThirdPersonGameMode(第三人称游戏模式)
请添加图片描述
下图配置了玩家的控制器,点击玩家控制器类的加号,创建新蓝图
【蓝图】p28-p29按键+鼠标点击实现开关门_第16张图片
勾选细节面板中的Mouse Interface(鼠标接口)中的Enable Touch Events(启用触控事件)、Enable Click Events(启用点击事件)、Show Mouse Cursor(显示鼠标光标)
打开Door_BP事件图表搜索Set Show Mouse Cursor(设置显示鼠标光标)(搜索不到可以关闭情景关联再搜索),把NewPlayerController中的显示鼠标光标关掉
如图连接蓝图【蓝图】p28-p29按键+鼠标点击实现开关门_第17张图片
此连接使靠近门出现鼠标,远离门鼠标光标消失

可能遇到的bug问题

第一次进入盒体碰撞没有开门,退出第二次进入才开门
问题分析:在组件中盒体碰撞在门的上一级,开关门时门会移动,会和盒体互相干扰(小bug),门和盒体被视为单独存在,两个蓝图事件会同时执行
解决办法1:让门和盒体在同一级
解决办法2:如下图连接蓝图【蓝图】p28-p29按键+鼠标点击实现开关门_第18张图片

你可能感兴趣的:(UE4入门教程,ue4)