一帧内发生的事情
-
OnBeginFrame
在一帧开始时, 委托FCoreDelegates::OnBeginFrame
首先会被触发 -
计算DeltaTime
-
这一帧的DeltaTime会被计算. DeltaTime会作为参数传递给后续的Tick回调
-
处理UI事件
- UE会处理操作系统的输入事件, 并调用UI系统的各个回调函数
-
例如
OnKeyDown
-
OnWorldTickStart
-
FWorldDelegates::OnWorldTickStart
会被触发 -
OnWorldPreActorTick
-
FWorldDelegates::OnWorldPreActorTick
会被触发 -
Actor::Tick
- 每个Actor会逐一进行Tick.
- 在蓝图中, 可使用 Tick Group 属性来进一步细分控制Tick顺序
-
可通过实现 Tick 来处理相关逻辑
-
UGameInstance::TimerManger::Tick
- GameInstance上的
TimerManager::Tick
会被触发 -
在蓝图中, 可以使用
SetTimerByFunctionName
节点设置Timer -
OnWorldPostActorTick
-
FWorldDelegates::OnWorldPostActorTick
会被触发 -
用户界面Tick
- 引擎会从根节点开始调用每个UserWidget的Tick
-
在控件蓝图中, 可通过实现Tick事件来处理相关逻辑
-
自增当前帧编号
- 引擎会自增
GFrameCounter
, 更新当前帧编号 -
在蓝图中, 可通过
GetFrameCount
节点获得当前帧编号 -
FTicker::Tick
(UE5中是FTSTicker::Tick
) -
引擎会触发Core Ticker.
-
OnEndFrame
- 最后, 委托
FCoreDelegates::OnEndFrame
会被触发