A game about forced loneliness, made by TACStudios
1using System; 2 3namespace UnityEditor.TestTools.TestRunner 4{ 5 internal class DelayedCallback 6 { 7 private Action m_Callback; 8 private double m_CallbackTime; 9 private double m_Delay; 10 11 public DelayedCallback(Action function, double timeFromNow) 12 { 13 m_Callback = function; 14 m_CallbackTime = EditorApplication.timeSinceStartup + timeFromNow; 15 m_Delay = timeFromNow; 16 EditorApplication.update += Update; 17 } 18 19 public void Clear() 20 { 21 EditorApplication.update -= Update; 22 m_CallbackTime = 0.0; 23 m_Callback = null; 24 } 25 26 private void Update() 27 { 28 if (EditorApplication.timeSinceStartup > m_CallbackTime) 29 { 30 // Clear state before firing callback to ensure reset (callback could call ExitGUI) 31 var callback = m_Callback; 32 Clear(); 33 34 callback?.Invoke(); 35 } 36 } 37 38 public void Reset() 39 { 40 if (m_Callback != null) 41 { 42 m_CallbackTime = EditorApplication.timeSinceStartup + m_Delay; 43 } 44 } 45 } 46}