Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


GetDefaultPlayerLoop()

Returns a Player loop system representing the default update order of all engine systems in Unity.
Read time 1 minuteLast updated 5 days ago

Definition

public static PlayerLoopSystem GetDefaultPlayerLoop()

Returns

Type

Description

PlayerLoopSystem

Remarks

The default update order is the order in which systems update unless you change it with PlayerLoop.SetPlayerLoop. The PlayerLoopSystem returned by this method can be modified to create a custom update order which you can set using PlayerLoop.SetPlayerLoop. If a custom Player loop has been previously set, then use PlayerLoop.GetCurrentPlayerLoop to retrieve and further modify the current update order.

Examples

using System.Text;using UnityEngine.LowLevel;using UnityEngine;public static class PrintDefaultPlayerLoop{ //Retrieve the default Player loop system and iterate over its subsystems to print them. //Run this method on runtime initialization [RuntimeInitializeOnLoadMethod] private static void AppStart() { StringBuilder sb = new(); // Pass the default Player loop to the recursive print function RecursivePlayerLoopPrint(PlayerLoop.GetDefaultPlayerLoop(), sb, 0); Debug.Log(sb.ToString()); } // Loop through the Player loop tree structure and add the names of the systems to the StringBuilder private static void RecursivePlayerLoopPrint(PlayerLoopSystem playerLoopSystem, StringBuilder sb, int depth) { if (depth == 0) { sb.AppendLine("ROOT NODE"); } else if (playerLoopSystem.type != null) { for (int i = 0; i < depth; i++) { sb.Append("\t"); } sb.AppendLine(playerLoopSystem.type.Name); } if (playerLoopSystem.subSystemList != null) { depth++; foreach (var s in playerLoopSystem.subSystemList) { RecursivePlayerLoopPrint(s, sb, depth); } depth--; } }}