UE4蓝图 实现时间倒流功能

,       时间倒流的实现大概思路就是在一个特定的时候每帧记录这个物体的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变量给设为真,我是用第一人称模板的子弹来触发的   然后设置个按键就可以出现效果了。

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

原文地址:https://www.cnblogs.com/maoxuyong/p/11419927.html

时间: 2024-09-29 03:42:33

UE4蓝图 实现时间倒流功能的相关文章

atitit.获取北京时间CST 功能api总结 O7

atitit.获取北京时间CST 功能api总结 O7 1. 获取cst时间(北京时间)两布:1.抓取url timtstamp >>format 到cst 1 2. 设置本机时间  setSystime(date);:调用的命令行,只能支持windows和linux系统 2 3. 留意:  1582年10月5日-1582年10月14日.是不存在的.. 2 4. 克拉维斯委员会面临两个不同的问题, 太阳年不一致and闰年 3 5. 不同的国家不同样的的历法 3 6. 1582年10月15日之前

UE4蓝图编程的第一步

认识UE4蓝图中颜色与变量类型: UE4中各个颜色对应着不同的变量,连接点和连线的颜色都在表示此处是什么类型的变量.对于初学者来说一开始看到那么多连接点, 可能会很茫然,搞不清还怎么连,如果知道了颜色对应的变量类型再去找相应的模块进行连接,效率要高很多. 这也是开始蓝图编程的第一步. 蓝图中的白线: 逻辑白线:逻辑顺序线,如果没有分支,就只能一个接一个地串联起来,中间不能断了.(目前只发现只有用逻辑白线连接的模块上可以打断点调试) 白线的开始通常是一个Event引出(如上图中的AnimNotif

BZOJ 1969: [Ahoi2005]LANE 航线规划 [树链剖分 时间倒流]

题意: 一张图,删除边,求两点之间的割边数量.保证任意时刻图连通 任求一棵生成树,只有树边可能是割边 时间倒流,加入一条边,就是两点路径上的边都不可能是割边,区间覆盖... 然后本题需要把边哈希一下,手写哈希比map快很多 貌似还有一种不用树剖的做法,不管了 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; co

无参装饰器为被装饰函数添加统计时间的功能

#需求 定义无参装饰器为被装饰函数添加统计时间的功能 1 import time #导入时间模块 2 3 def timer(func): 4 def wapper(): 5 start = time.time() 6 func() 7 stop = time.time() 8 index_spend_time = stop - start 9 print(index_spend_time) 10 return wapper 11 @timer 12 def index(): 13 time.s

[UE4]蓝图函数库小结

蓝图函数库的功能非常强劲,如果在项目中使用的话有时能达到事半功倍的效果. 蓝图函数库,Blueprint Function Library.可以非常方便的将代码中的函数暴露给所有的蓝图使用,同时也提供了很好的代码复用性.完成的蓝图函数库可以非常轻易的在其他项目中使用或者共享给其他人.由于在函数库中定义的所有函数都能在其他的蓝图中访问,可以说是和单例模式的C++代码接合的天然素材.也可以防止为了定义一些泛用的函数而频繁的使用接口继承. 使用起来也是非常的简单明了.类似下面的代码就可以完成一个蓝图函

新功能:阿里云负载均衡SLB支持HTTP/HTTPS超时时间自定义功能

摘要: 大家好,很高兴的告诉大家,阿里云负载均衡SLB已经在新加坡.澳大利亚(悉尼).马来西亚(吉隆坡).日本(东京).美国(硅谷).美国(弗吉尼亚).德国(法兰克福).阿联酋(迪拜).印度(孟买)上述地域支持HTTP/HTTPS超时时间自定义功能(增加黑名单),国内地域也即将上线. 1. Greeting 大家好,很高兴的告诉大家,阿里云负载均衡SLB已经在新加坡.澳大利亚(悉尼).马来西亚(吉隆坡).日本(东京).美国(硅谷).美国(弗吉尼亚).德国(法兰克福).阿联酋(迪拜).印度(孟买)

如何关闭Win10系统的时间轴功能?

Win10系统新增了时间轴的功能,可以根据用户使用电脑的情况来进行记录,以方便用户查找之前的电脑使用记录,并且可以打开之前的任务状态. 但有些用户不想让系统记录下自己的活动记录,那我们该怎么清除这些记录呢?又该如何关闭时间轴来防止系统再进行记录呢?下面就来和大家分享一下方法. Win10系统清除时间轴记录的方法 1.我们可以在开始菜单打开Windows设置,选择点击"隐私"项. 2.在左侧栏中点击"活动历史记录",然后在其选项中点击"清除活动历史记录&qu

【做题】CERC2017B. Buffalo Barricades——时间倒流

原文链接 https://www.cnblogs.com/cly-none/p/CERC2017B.html 题意:在一个网格平面上,有\(n\)个点,其中第\(i\)个点在以\((x_i, y_i)\)为右上角的网格中.有\(m\)次操作,每次给出一个点\((x,y)\),表示从\((x,y)\)开始,向左和向下画线直到与之前画的线或坐标轴相交.这样会划分出以\((x,y)\)为右上角的新区域.你需要对每次操作求出,新区域中点的数量. $n , m \leq 3 \times 10^5, ?

[AHOI2005]航线规划(树链剖分+时间倒流)

传送门 练一下树剖的板子,运用一下时间倒流和下放边权的思想. 题中所谓“关键航线”其实就是桥. 删边操作桥不好维护,但如果是加边,每加一条边,两点作为端点的这条路径就都不再是桥----->考虑时间倒流. 从后往前,每删除一条边,现在就是加边,该路径上所有边都不是桥(打上标记). 可以先求出一棵最小生成树(代码中是在dfs中实现的)那些多的边就以加边的方式加入(说明到最后一个操作后,这条路径的边也不是桥). #include<bits/stdc++.h> #define M 200003