我是靠谱客的博主 野性老鼠,最近开发中收集的这篇文章主要介绍UE4-碰撞事件:开关门基础篇,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基础篇主要讲可以通过什么方式来达到开关门的效果;
高级篇中,会讲到如何使用蓝图类来编写可复用的开关门;

一:概念篇
1-:Tigger:可以用来进行一些碰撞事件或者触发一些特效<点击按钮,灯开关;门开关;动作特效触发>;
2-:Box Tigger:是一个立方体的Tigger,在程序运行过程中隐藏,无法看到具体的物体。

二:实践篇
1-:新建一个New Level,然后选择Default;
2- : 在Basic中,选择Box Tigger,拖拽到空间里,设置更改大小及位置;
3-:选择Box Tigger,打开关卡蓝图<点击Blueprints –>点击open Blue level Blueprint>;
4-:在Event Graph中点击右键:
如图:
这里写图片描述

解释:
-1:Add Event for Trigger Box1:为Tigger添加碰撞事件;
-2:Tigger Box1:为刚才添加的物体的名字;
-3:Crearte a Reference to TiggerBox:创建一个刚才选中的物体的引用;

5-:创建引用及碰撞方法;
这里写图片描述

解释:
-1:OnActorBeginOverLap:触碰开始时执行事件<进入区域触发事件>;
-2:OnActorEndOverLap:触碰结束时执行事件<退出区域触发事件>;
-3:Overlapped Actor:碰撞的物体相关信息;
-4:other Actor:碰撞的物体相关<可获取碰撞物体的名字等其他信息>;

6-:试验
这里写图片描述
运行程序:当进入时,在屏幕左上角打印in;当离开这个Tigger区域,在屏幕左上角打印out;

三:应用篇:
1-:在场景中拖入一个物体,调整大小及设置属性为可移动;
2-:AddActorLocalOffset:改变位置进行相关移动;<相当于门打开>
这里写图片描述

运行结果:可以看出在进入的时候,移动到我们指定的位置,但是比较生硬,可以说是一瞬间的事情;
这里写图片描述

运行结果:进入门打开,离开门回到原位


<Y轴坐标位置的设定>

3-:升级版<使用EventTick进行平滑移动>
这里写图片描述

运行结果:进入场景时,物体开始平滑移动,但是自动停止;
4-:在升级<平滑移动,自动停止>
-1:添加一个bool变量,当为true时,物体可以移动,当在物体内是,可以移动;
-2:在进入Tigger和离开时更改变量的值:
这里写图片描述
-3:设置物体的Y值到达一定的位置时,物体不可移动,更改变量值;
获取物体的坐标:
这里写图片描述

-4:设置当物体Y值坐标大于或小于某一个值

这里写图片描述

运行结果:进入场景时,物体开始平滑移动,然后移动到一定距离,停止;

四:升级篇
1-:打开蓝图关卡,在Event Graph中点击右键,新建TimeLine;
2-:双击TimeLine;
-1:点击F+,添加一个函数;
-2:Length:整个任务执行的时间;
-3:DoorLine:自定义函数名;
这里写图片描述

-4:在两个标红点位置按shift,点击右键,修改Time和Value<一般情况下,当time等于0,Value等于0;time等于任务时间,Value等于1>
这里写图片描述

这里写图片描述

2-:事件驱动
1-:Lerp差值计算<一个时间过渡函数>
这里写图片描述
2-:解决不同电脑帧数不同导致的问题;<修改B的值>
这里写图片描述

五:战斗篇
1-:

设置终点位置<SetActorLocation<相当于直接移动物体到某一个坐标系位置,前提是需要知道移动前与移动后的相关坐标系>>

2-:蓝图如下:
这里写图片描述

运行结果:按照A.B的差值,在自定义名字叫DoorLine的TimeLine中,随着Vaule的值得变化,在一定时间内移动到我们设置的差值位置;

高级篇中,会讲到如何使用蓝图类来写一个可复用,可自定义功能的Actor。

最后

以上就是野性老鼠为你收集整理的UE4-碰撞事件:开关门基础篇的全部内容,希望文章能够帮你解决UE4-碰撞事件:开关门基础篇所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部