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
- Type: Method
- Namespace: UnityEngine.LowLevel
- Assembly: UnityEngine.CoreModule
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--; } }}