创建一个蓝图类的门来实现便捷的可开关门

题目比较简单的说就是这样造出来的门,直接就能开关,不需要再进行添加交互功能,也就是创造一个类,然后每次引用实例来进行门的创建

 在内容侧滑菜单里创建一个蓝图类,actor

并改一下名,这里是我弄好之后的样子,所以图标不一样,直接命名  door_1也可以,然后点开

在左上角添加一个静态网格体组件,改名doorframe

 在静态网格体里找到doorframe进行添加

同理,给doorframe添加一个子物体,door,并在同级添加一个box collision(盒体碰撞触发器)

把二者进行组装,这个样子就ok 

  

同级 

然后点开box,在右边的细节里往下翻,找到事件,点击组件开始重叠时和组件结束重叠时后面的加号

然后会得到两个事件 

我们再进行创建,右键空白部分,进行搜索

然后,为了使开门拥有过渡效果,我们添加一个时间轴,这个时间轴的作用史,创建一个或多个轨道,进行连接之后,可以使变量在设置好的情况下缓慢改变

搜素时间轴,得到这个方法,打开之后,创建一个浮点型轨道,默认得名称是新建轨道0

在这个轨道添加两个关键帧,并修改时间和数值

点击这两个按钮,使图像可视化 

改变关键帧的长度

然后进行连线 ,大致意思是,碰到触发器时,进行门的z轴的旋转角度从0到85的缓慢变化,离开触发器时,进行反向变化

 靠近,门开了

然后我们来实现,靠近门之后,press ‘e’(keyboard)可以把门打开

需要添加的事件或者方法如下

其中

E是一个判断,按下时进入gate

gate是一个流程,完成开门的动作 

getplayercontroller用于获取玩家的控制,返回玩家参数

enableinput和disableinput分别是接受键盘输入和拒绝键盘输入的一个卡口,即接近时允许输入,离开时拒绝输入

flipflog用于分叉,第一次输入走open这条路,下一次输入走close这条路

连接方法

口述过程:

接近box触发enable,离开 box触发disableget得到玩家的输入,与enable和disable相连,然后一个进行open程序,一个进行close程序,E的pressed与enter想连,进入gate,exit执行经过flipflog的转换与开关门具体实现的程序连接。

然后我们再来实现鼠标点击实现开关门

具体连接和事件等如下

其中,SET是一个鼠标光标显示消失的功能,名称如下

靠近时显示鼠标光标,离开时不显示鼠标光标,然后在door的细节里找到,点击时事件,即可得到on clicked

 根据上个功能的口述可以大概了解这个功能的逻辑,此外需要在游戏模式中进行设置,鼠标点击才能生效,在世界场景中,找到玩家控制器类,进行添加,然后启用点击事件,即可

开门了 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值