using System; using System.Collections; namespace NitroxClient.Unity.Helper; public static class CoroutineHelper { public static IEnumerator OnYieldError(this IEnumerator enumerator, Action exceptionCallback) { return enumerator.OnYieldError(exceptionCallback); } public static IEnumerator OnYieldError(this IEnumerator enumerator, Action exceptionCallback = null) where T : Exception { if (enumerator == null) { yield break; } while (true) { try { if (!enumerator.MoveNext()) { yield break; } } catch (T exception) { exceptionCallback?.Invoke(exception); yield break; } yield return enumerator.Current; } } }