加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

UE4蓝图 实现时间倒流功能

发布时间:2020-12-15 07:55:52 所属栏目:Java 来源:网络整理
导读:? ,? ? ? ?时间倒流的实现大概思路就是在一个特定的时候每帧记录这个物体的Transform并存入数组中,再触发一个时间从数组最后一个往前设置Transform。 第一步 首先我创建一个Actor类,并添加组件Cube(一个模型并把它设为根组件)和一个Box Collision(检测

?

,? ? ? ?时间倒流的实现大概思路就是在一个特定的时候每帧记录这个物体的Transform并存入数组中,再触发一个时间从数组最后一个往前设置Transform。

第一步首先我创建一个Actor类,并添加组件Cube(一个模型并把它设为根组件)和一个Box Collision(检测碰撞用的),

? ? ? ? ?Cube的碰撞设置为BlackAll,碰撞体默认碰撞就行。

第二步在EventBeginPlay后面让Cube开启物理

或者直接在细节里物理勾上也可以。

第三步在EventTick后面,首先判断是否开启记录位置IsOpen?

? ,如果为真就开启物理(保险一点,有时会有些Bug),之后创建一个Transform类型的数组,

获取Cube的世界Transform存入数组

,延迟5秒把数组长度存到一个整型变量当中,并把bool值变量设为假。

?

第四步如果IsOpen为假就Delay0.0002秒后判断这个数组长度的变量Length是否为0

,如果为真就把数组清空并把物理关闭。

我这个Return是一个开关 ,按键后它才会实现时间倒流。

第五步如果Return为真就把物理关闭(时间倒退过程开启物理会影响效果),之后获取数组长度的变量Length-1设置给Length(这样就会从最后一个来读取数值了)

最后设置这个Cube的Transform,获取TransForm数组然后Get

,Get的值是减1以后的Length

这样就基本实现了功能,触发只需要把IsOpen变量给设为真,我是用第一人称模板的子弹来触发的? ?然后设置个按键就可以出现效果了。

?

?

?

最后说一句,这是我第一次分享自己的笔记,可能很乱,大家将就看,有啥不理解问我。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读