public static void Dispatch(DispatchPhase phase) { for (var i = 0; i < 3; i++) { var singleShot = SingleShotDispatches[(int)phase][i]; // ReSharper disable once ForCanBeConvertedToForeach for (var j = 0; j < singleShot.Count; j++) { singleShot[j](); } singleShot.Clear(); var perFrame = PerFrameDispatches[(int)phase][i]; // ReSharper disable once ForCanBeConvertedToForeach for (var j = 0; j < perFrame.Count; j++) { perFrame[j](); } } }
public StaticDispatch(DispatchPhase phase) { Phase = phase; }
public static void AddDispatch(DispatchPhase phase, bool perFrame, DispatchOrder order, Action action) { (perFrame ? SingleShotDispatches : PerFrameDispatches)[(int)phase][(int)order].Add(action); }
public static void AddDispatch(DispatchPhase phase, bool perFrame, Action action) => AddDispatch(phase, perFrame, DispatchOrder.Normal, action);