private static IEnumerator EnumLuaCoroutine(ILuaCoroutine coroutine) { while (true) { var result = coroutine.Resume(); if (result != null) { if (result is IEnumerator) { var etor = result as IEnumerator; while (etor.MoveNext()) { yield return(etor.Current); } } else if (result is IEnumerable) { var enumerable = result as IEnumerable; foreach (var obj in enumerable) { yield return(obj); } } else { yield return(result); } } else { yield break; } } }
public Coroutine BehavCoroutine(ILuaCoroutine coroutine) { return(StartCoroutine(EnumLuaCoroutine(coroutine))); }