[UE4]时序问题
时序问题
有依赖关系的两段代码,执行时间不确定,所引起的问题。
举例
1、Shooter引用了Weapon,Weapon引用了Shooter。射击者需要持有枪,枪需要判断是否有主人(枪的持有者)。在枪要引用持有者的时候,可以使用Delay一段时间(1秒,甚至更短)在引用持有者就没问题了。
2、UI引用Weapon。在UI中使用Weapon对象的时候,可能Weapon还没有创建出来,在UI中可以可以Delay一段时间(例如1秒,甚至更短时间都可以)等Weapon创建完成在引用Weapon
3、UI计算Size。计算Size需要在UI被创建才能正确计算Size,也可以使用Delay延迟,等UI被创建之后再计算Size,这样才能得到正确的结果。
解决时序问题的2个办法
1、Delay
2、明确调用顺序。在我们能够控制调用顺序的时候,可以采用这个办法。

一、游戏主循环的“处理游戏逻辑”还可细分为上图所示的右侧循环步骤
二、对所有Actor进行处理,不光是上图示的事件,可能还有其他的输入事件也是需要在“处理游戏逻辑”里面处理
三、所有的Actor在处理过程中会发生变化,比如在某个Actor的Beginplay里面创建了另外一个Actor,那么待处理的Actor列表就+1了,那么新增的actor是不是在当前帧处理呢?这可是不一定的,这要看引擎的作者是怎么实现的,这并没有明确的规定。
四、还有可能是Actor的销毁,Actor的销毁不会被立即释放,而是会在当前帧结束之后才被释放,
五、假设2个Actor同时产生了,那么这2个Actor的Beginplay事件哪个先被执行呢?这个真是无法确定的。因此就会产生时序问题。
[UE4]时序问题的更多相关文章
- UE4命令行使用,解释
命令行在外部 从命令行运行编辑项目 1 导航到您的[LauncherInstall][VersionNumber]\Engine\Binaries\Win64 目录中. 2 右键单击上 UE4Edit ...
- UE4新手引导之下载和安装虚幻4游戏引擎
1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下 ...
- UE4新手引导入门教程
请大家去这个地址下载:file:///D:/UE4%20Doc/虚幻4新手引导入门教程.pdf
- [UML]UML系列——时序图(顺序图)sequence diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- ue4 c++学习推荐
我由易到难推荐,不过在此之前还是先看看官方对于VS设置的推荐: https://docs.unrealengine.com/latest/INT/Programming/Development/Vis ...
- 如何创建独立的UE4服务端
原文作者:@玄冬Wong 转载请注明原文出处:http://aigo.iteye.com/blog/2268777 这是论坛上对UE服务端功能的回答,意思是UE4提供了主流MMO网游服务端所具备的特性 ...
- 《Inside UE4》目录
<Inside UE4>目录 InsideUE4 UE4无疑是非常优秀的世界上最顶尖的引擎之一,性能和效果都非常出众,编辑器工作流也非常的出色,更难得宝贵的是完全的开源让我们有机会去从中吸 ...
- 如何使用的Ue4自带的SQLiteSupport
在UE4.6版本加入的模块.可以让开发者使用SQLite数据库.SQlite是个轻量型的本地数据库. 我下面就来介绍一下如何使用这个模块. 第一步:下载SQLite源代码以及SQLite GUI管理工 ...
- 【UE4游戏开发】安装UE4时报SU-PQR1603错误的解决方法
马三在开发过程中一直用的都是UE4.9版本(很久没有更新了.),因为功能都够用,所以也懒得去更新.这不最近UE4 发布了最新的4.14版本,本来想尝个鲜,试试新版的UE引擎怎么样,结果这一安装上就一直 ...
随机推荐
- Android.bp学习笔记
1.Android.bp简介 Android 7.0之后希望用Android.bp替换Android.mk,bp简单的配置更方便Ninja 文件的产生,而Blueprint和Soong 就此产生.An ...
- Android命令行工具学习总结
15.setting命令 setting命令可以很方便的更改系统设置中的参数(如修改系统默认输入法) 安卓Settings模块浅析:https://www.jianshu.com/p/ed8508fe ...
- Power consumption comparison
Here is my draft evaluation when old MCU replacement for power consumption, the comparsion betwween ...
- Road Crossing Game Template 学习
using UnityEngine; using System; namespace RoadCrossing.Types { /// <summary> /// 小路 /// </ ...
- IDEA 创建maven项目
说明 创建Maven项目的方式:手工创建 好处:参考IntelliJ IDEA 14 创建maven项目二(此文章描述了用此方式创建Maven项目的好处)及idea14使用maven创建web工程(此 ...
- MYSQL之 GroupCommit
组提交(group commit)是MYSQL处理日志的一种优化方式,主要为了解决写日志时频繁刷磁盘的问题.组提交伴随着MYSQL的发展不断优化,从最初只支持redo log 组提交,到目前5.6官方 ...
- 数学集合:N Z Q R C
整数: Zahlen(德) 复数: Complex number 实数: Real number 自然数: Natural number 有理数: Quotient(德,"商&quo ...
- C语言中基本的数据类型
一般来说,一个C的工程中一定要做一些这方面的工作,因为你会涉及到跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以让你最有效的维护你的代码.为了用户的方便,C99标准的C语言硬件为我 ...
- shell脚本报错:-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory --引用自http://blog.csdn.net/xiaaiwu/article/details/49126777
windows下编辑然后上传到linux系统里执行的..sh文件的格式为dos格式.而linux只能执行格式为unix格式的脚本. 我们可以通过vi编辑器来查看文件的format格式.步骤如下: 1. ...
- MySQL 内存溢出
select EVENT_NAME ,SUM_NUMBER_OF_BYTES_ALLOC from memory_summary_global_by_event_name order by SUM_N ...