void Update() { if (listOfCallbacks == null || listOfCallbacks.Count == 0) { return; } for (int i = 0; i < listOfCallbacks.Count; ++i) { callbackStruct = listOfCallbacks[i]; if ((!callbackStruct.isRealTime && Time.time - callbackStruct.startTime > callbackStruct.timeDelay) || (callbackStruct.isRealTime && Time.realtimeSinceStartup - callbackStruct.startTime > callbackStruct.timeDelay)) { callbackStruct.func(); if (callbackStruct.repeat) { callbackStruct.startTime = Time.time; } else { listOfCallbacks.Remove(callbackStruct); } } } }