UE4复习1_碰撞事件

学的东西不用就容易忘,所以决定认真梳理一下学习ue4时的知识点。

首先就是ue4里的碰撞事件了。碰撞事件是ue4里比较常用的事件,用来判断某actor或者某character是否处于或者不处于某个空间中,并执行相应的命令。

1. 自动门的实现

场景里有一个“门”,需要人物靠近才能打开。

 (这个白板相当于自动门的一半)

首先要设置一个 triggerbox,也就是一个 正方体的触发器。

ps.要记得把白板设成可移动的。

然后打开关卡蓝图,在场景中选中cube的情况下右键,创建引用。

碰撞事件的触发使用的是,OnActorBeginOverlap这个事件,代表triggerbox接受到碰撞了。

同时用 OnActorEndOverlap这个事件表示碰撞中止了,比如你的人物离开了该区域。

2.灯光的开关

 如图,三个橙框里面分别是一个 灯的类蓝图,同时自带triggerbox。同时外面还有一个绿色的框,也是一个triggerbox。

假如我们想实现游戏中灯光的开关,首先我们得靠近灯,然后按开关,这样比较符合逻辑。

在这个项目里我实现的是,进入某灯的triggerbox之后按键来控制该灯开关;进入绿色box后三灯全亮,离开绿色box三灯全灭。

蓝图如下:

 上图为灯的类蓝图。首先进入box后得使用enable input才能接受输入,同时离开box后便不允许接受输入。

 

 ps. turn on是写在灯类蓝图中的函数。

这里要重点说一下,两种控制灯光函数的不同。

一种是在灯类蓝图中使用控制单个灯开关的toggle visibility,另一种是在函数里使用的set visibility。

简而言之,前者不接受布尔值,后者接受布尔值。

在项目中来看就是,使用toggle visibility,你可以连续触发(如狂按F),按一下开,再按一下关。

但假如换成 set visbility,因为他通过接受布尔值来决定灯光是否可见,所以你只能按一次。按一次开,在按就没用了。因为你已经给他通过输入事件设定了布尔值,再按设定相同的布尔值是没用的。

toggle visibility也可以用来设置辅助文本的显示与否。比如靠近一个灯之后,显示“按F开灯”之类的。

3.着火的石头门

 

 火焰的添加是在左上角,添加粒子效果,particle system

该类型的“熄灭”控制的函数是set active

另外要重点说一下的是set relative location

是指类蓝图中物体相对于 Root的位移,即左上角的DefaultScenceRoot

最终效果是进入box,门开,火焰在延迟0.2s后开始熄灭。离开box后,门关,同时火焰也不会在复燃。

猜你喜欢

转载自www.cnblogs.com/reluctante1/p/12702640.html
今日推荐