我是酱油,这是第129期文章
如果说UE4和Unity的区别,对于我这种不擅长编程的人,前者初期体验起来像是游戏,一款能做游戏的游戏;后者才是正儿八经的引擎;
这几天在学习做升降电梯功能:
教程地址:
https://www.bilibili.com/video/BV164411Y732?p=29
1、当人物站在电梯上,按键盘E,电梯上升。
2、上升期间,再按键盘E,电梯会反向运动。
教程只有15分钟,看起来很短,结果折腾了好几天。这是第一次使用蓝图制作游戏,原来不用写代码也可以实现代码的效果,对于广大不懂代码的同学而言是个福音。
上成果图先:
其实,第一次做完并没达到预期效果:人物站在电梯上,按下键盘E,电梯就是不上升。反复看了几遍发现,移动的载体应该是Cube(电梯那块白板),而我却错把Box(嵌套在电梯上的碰撞体)拖过来当载体,那结果当然是电梯没动,而碰撞体却动了,但碰撞体又是无形的,没法看见它在运动。
修改完后,人物站在电梯上,按下E,电梯可以上升和下降了。
正当开心着,又测试出了新问题:人物离开电梯后,按E仍然可以对电梯产生效果……what?
于是继续反复看视频,这回楞是没找到原因。
很多时候学习一门技术,就是频繁遇到这种茬:一来自己找不到解决方法;二来又没人可以交流的;久而久之,就放弃了。
这也是写公众号的原因,相信有不少同学也是一样,有个聚集地,大家可以彼此倾诉下,或者可能你遇到的问题在我这儿也出现过,那就再好不过了。
后面学了一种排查bug的方式:运行游戏的同时开着事件图来找bug。
发现断开“组件结束重叠时”这个事件,对游戏没有丝毫影响,那问题可能就出在这里了。最后检查到“组件开始重叠时”的载体是Box,而“组件结束重叠时”的载体却是Cube,本来两者应该是统一的,但不知道自己怎么会抽风将两个设置成不一样的,修改之。
于是,到此功能就彻底完善了。
在排查bug查找资料期间,也挺有收获,比如:
1、FlipFlop的用法
按下C键,执行A分支。再按下C键,执行B分支。接着再按C键,再执行A分支,以此循环。
2、Gate的用法
鼠标左键按下,每帧都会执行。
鼠标左键松开,结束每帧执行。
你也打算学习UE4制作游戏或已经在学习的吗?欢迎给我留言,一起交流。
联系客服