Skip to content

Instantly share code, notes, and snippets.

@nomoon
Forked from neuecc/PlayerLoopList.md
Last active August 30, 2024 21:47
Show Gist options
  • Save nomoon/66a999992aaec025c6381358c60b668d to your computer and use it in GitHub Desktop.
Save nomoon/66a999992aaec025c6381358c60b668d to your computer and use it in GitHub Desktop.

Time Update

  • UniTaskLoopRunnerYieldTimeUpdate (await UniTask.Yield(TimeUpdate);)
  • UniTaskLoopRunnerTimeUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • TimeUpdate.WaitForLastPresentationAndUpdateTime
  • UniTaskLoopRunnerLastYieldTimeUpdate (await UniTask.Yield(LastTimeUpdate );)
  • UniTaskLoopRunnerLastTimeUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)

Initialization

  • UniTaskLoopRunnerYieldInitialization (await UniTask.Yield(Initialization);)
  • UniTaskLoopRunnerInitialization (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • InputSystemPlayerLoopRunnerInitializationSystem
  • Initialization.UpdateCameraMotionVectors
  • DirectorSampleTime
  • AsyncUploadTimeSlicedUpdate
  • SynchronizeInputs
  • SynchronizeState
  • XREarlyUpdate
  • UniTaskLoopRunnerLastYieldInitialization (await UniTask.Yield(LastInitialization);)
  • UniTaskLoopRunnerLastInitialization (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • InitializationSystemGroup (ECS)

EarlyUpdate

  • UniTaskLoopRunnerYieldEarlyUpdate (await UniTask.Yield(EarlyUpdate);)
  • UniTaskLoopRunnerEarlyUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • PollPlayerConnection
  • ProfilerStartFrame
  • GpuTimestamp
  • AnalyticsCoreStatsUpdate
  • UnityWebRequestUpdate
  • ExecuteMainThreadJobs
  • ProcessMouseInWindow
  • ClearIntermediateRenderers
  • ClearLines
  • PresentBeforeUpdate
  • ResetFrameStatsAfterPresent
  • UpdateAsyncReadbackManager
  • UpdateStreamingManager
  • UpdateTextureStreamingManager
  • UpdatePreloading
  • RendererNotifyInvisible
  • PlayerCleanupCachedData
  • UpdateMainGameViewRect
  • UpdateCanvasRectTransform
  • XRUpdate
  • UpdateInputManager
  • ProcessRemoteInput
  • ScriptRunDelayedStartupFrame (possible MonoBehaviour.Start();)
  • UpdateKinect
  • DeliverIosPlatformEvents
  • TangoUpdate
  • DispatchEventQueueEvents
  • PhysicsResetInterpolatedTransformPosition
  • SpriteAtlasManagerUpdate
  • PerformanceAnalyticsUpdate
  • UniTaskLoopRunnerLastYieldEarlyUpdate (await UniTask.Yield(LastEarlyUpdate);)
  • UniTaskLoopRunnerLastEarlyUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)

FixedUpdate

  • UniTaskLoopRunnerYieldFixedUpdate (await UniTask.Yield(FixedUpdate);)
  • UniTaskLoopRunnerFixedUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • ClearLines
  • NewInputFixedUpdate
  • DirectorFixedSampleTime
  • AudioFixedUpdate
  • ScriptRunBehaviourFixedUpdate (MonoBehaviour.FixedUpdate();)
  • DirectorFixedUpdate
  • LegacyFixedAnimationUpdate
  • XRFixedUpdate
  • PhysicsFixedUpdate
  • Physics2DFixedUpdate
  • DirectorFixedUpdatePostPhysics
  • ScriptRunDelayedFixedFrameRate (yield return new WaitForFixedUpdate();)
  • UniTaskLoopRunnerLastYieldFixedUpdate (await UniTask.Yield(LastFixedUpdate);)
  • UniTaskLoopRunnerLastFixedUpdate (await UniTask.WaitForFixedUpdate();, option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)

PreUpdate

  • UniTaskLoopRunnerYieldPreUpdate (await UniTask.Yield(PreUpdate);)
  • UniTaskLoopRunnerPreUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • PhysicsUpdate
  • Physics2DUpdate
  • CheckTexFieldInput
  • IMGUISendQueuedEvents
  • NewInputUpdate
  • SendMouseEvents
  • AIUpdate
  • WindUpdate
  • UpdateVideo
  • UniTaskLoopRunnerLastYieldPreUpdate (await UniTask.Yield(LastPreUpdate);)
  • UniTaskLoopRunnerLastPreUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)

Update

  • UniTaskLoopRunnerYieldUpdate (await UniTask.Yield(Update);)
  • UniTaskLoopRunnerUpdate (default for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • ScriptRunBehaviourUpdate (MonoBehaviour.Update();, possible MonoBehaviour.Start();)
  • ScriptRunDelayedDynamicFrameRate (yield return null;, yield return new WaitForSeconds();, yield return StartCoroutine();, possible MonoBehaviour.Start();)
  • ScriptRunDelayedTasks
  • DirectorUpdate
  • UniTaskLoopRunnerLastYieldUpdate (await UniTask.Yield(LastUpdate);)
  • UniTaskLoopRunnerLastUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • SimulationSystemGroup (ECS)

PreLateUpdate

  • UniTaskLoopRunnerYieldPreLateUpdate (await UniTask.Yield(PreLateUpdate);)
  • UniTaskLoopRunnerPreLateUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • AIUpdatePostScript
  • DirectorUpdateAnimationBegin
  • LegacyAnimationUpdate
  • DirectorUpdateAnimationEnd
  • DirectorDeferredEvaluate
  • EndGraphicsJobsAfterScriptUpdate
  • ParticleSystemBeginUpdateAll
  • ConstraintManagerUpdate
  • ScriptRunBehaviourLateUpdate (MonoBehaviour.LateUpdate();)
  • UniTaskLoopRunnerLastYieldPreLateUpdate (await UniTask.Yield(LastPreLateUpdate);)
  • UniTaskLoopRunnerLastPreLateUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • PresentationSystemGroup (ECS)

PostLateUpdate

  • UniTaskLoopRunnerYieldPostLateUpdate (await UniTask.Yield(PostLateUpdate);)
  • UniTaskLoopRunnerPostLateUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)
  • PlayerSendFrameStarted
  • DirectorLateUpdate
  • ScriptRunDelayedDynamicFrameRate (possible MonoBehaviour.Start();, MonoBehaviour.OnDestroy(); afterwards)
  • PhysicsSkinnedClothBeginUpdate
  • UpdateRectTransform
  • UpdateCanvasRectTransform
  • PlayerUpdateCanvases
  • UpdateAudio
  • VFXUpdate
  • ParticleSystemEndUpdateAll
  • EndGraphicsJobsAfterScriptLateUpdate
  • UpdateCustomRenderTextures
  • UpdateAllRenderers
  • EnlightenRuntimeUpdate
  • UpdateAllSkinnedMeshes
  • ProcessWebSendMessages
  • SortingGroupsUpdate
  • UpdateVideoTextures
  • UpdateVideo
  • DirectorRenderImage
  • PlayerEmitCanvasGeometry
  • PhysicsSkinnedClothFinishUpdate
  • FinishFrameRendering
  • BatchModeUpdate
  • PlayerSendFrameComplete
  • UpdateCaptureScreenshot
  • PresentAfterDraw
  • ClearImmediateRenderers
  • PlayerSendFramePostPresent
  • UpdateResolution
  • InputEndFrame
  • TriggerEndOfFrameCallbacks
  • GUIClearEvents
  • ShaderHandleErrors
  • ResetInputAxis
  • ThreadedLoadingDebug
  • ProfilerSynchronizeStats
  • MemoryFrameMaintenance
  • ExecuteGameCenterCallbacks
  • ProfilerEndFrame
  • UniTaskLoopRunnerLastYieldPostLateUpdate (await UniTask.Yield(LastPostLateUpdate);)
  • UniTaskLoopRunnerLastPostLateUpdate (option for UniTask's NextFrame(), WaitForSeconds(), DelayFrame(), Delay() awaitables.)

(Special) After

  • yield return new WaitForEndOfFrame();
  • await Unitask.WaitForEndOfFrame(MonoBehaviour); (< 2023.1)
  • await Unitask.WaitForEndOfFrame(); (>= 2023.1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment