- Published on
相机更新
- Authors

- Name
- 东哥
前言
顺序
相机的更新从World::Tick 开始
在更新完所有常见Group组,并且更新完Timer后,再更新PlayerController::UpdateCameraManager
所以第一个重点,相机更新的时序位于几乎所有其他场景对象的tick的后面
后面就到了CameraManager
以Lyra为例,相机的主要逻辑的更新如下
APlayerCameraManager::UpdateCamera
-
DoUpdateCamera(DeltaTime);
-
UpdateViewTarget
-
UpdateViewTargetInternal
-
BlueprintUpdateCamera(是否有蓝图重载,否则使用下面的步骤)
-
Actor::CalcCamera
- CameraComponent::GetCameraView
- UpdateCameraModes (Lyra特有的相机模式,在这里更新,会影响相机的位置,旋转和FOV等信息)
- PC->SetControlRotation (这一步强行刷新一下PlayerController的朝向)
- SetWorldLocationAndRotation(设置相机自己的位置和旋转)
- CameraComponent::GetCameraView
-
-
ApplyCameraModifiers (CameraShake等效果是在这一步应用)
-
SetActorLocationAndRotation (更新Manager自己的位置和旋转)
-
UpdateCameraLensEffects(更新相机后效)
-
刷新Fade相关逻辑
-
FillCameraCache(填充相机数据)
-
-
如果需要就同步相机的位置到服务端