最近在折腾2D游戏,但是UE4没有OneWay Platform功能(也或许是有我这菜鸟没发现= =),2D游戏没有这个功能乐趣可就失去一大半了,无论如何,自己蓝图写一个吧那就~
简述:主要是利用Collision检测人物是否在物体上,如果在,按住一个按钮,再跳起来,就会下去。
教程开始:
新建一个Spirit,用Spirit新建一个蓝图,之后放两个Box,上面的用来检测人物碰撞,下面的用来挡住人物掉落。
上方Up Box创建一个Begin Overlap事件,之后连接Branch判定是否Overlap生效,判定可以用== Get Player Character来判定,如下图;
第二个Branch用来判定人物是否在平台上方,如果在,那就直接将Down Box的Collision Channel设定为Block,这样人物就可以站在上面,否则在短时间Delay(时间一定要短,不然可能会卡住,或者上不去下不来)之后再Block,否则可能人物会上不去,被脑袋卡住。
离开平台用Up Box的End Overlap事件来检测;
首先第一个Branch,也是利用== Get
Play Character来判断,如果Branch为真,进到下一个Branch;
第二个Branch主要检测是否人物在平台上方(不这样检测的话,重新跳上平台可能会出错,比如跳不上去),如果不在,就直接前进到Collision Channel设为Ignore,如果在那么进入到第三个判定;
第三个判定主要是增加一个下平台按钮,比如按住【手柄肩键】+【跳键】下落,大概就是这个意思,这里用了Is Input Key Down来判定,如果按住按键,同时离开Box事件判定成功那就ok了。
最后的效果就是这样的。