private IEnumerator Wrap(Func<IEnumerator> coroutine) { SafeCoroutine safeCoroutine = new SafeCoroutine(); IEnumerator i = null; try { i = coroutine(); } catch (Exception exception) { Handle(exception); } if (i != null) { safeCoroutine.Coroutine = StartCoroutine(safeCoroutine.RunCoroutine(i)); yield return safeCoroutine.Coroutine; } if (safeCoroutine.Exception != null) { Handle(safeCoroutine.Exception); } }
private IEnumerator Wrap(CoroutineChainLink link) { SafeCoroutine safeCoroutine = new SafeCoroutine(); safeCoroutine.Coroutine = StartCoroutine(safeCoroutine.RunCoroutine(link.CoOnStart())); yield return safeCoroutine.Coroutine; if (safeCoroutine.Exception != null) { link.OnFailure(safeCoroutine.Exception); } }