Skip to content

Commit

Permalink
feat: coroutine can work in editor #79
Browse files Browse the repository at this point in the history
  • Loading branch information
Shinkievicz committed Jan 24, 2022
1 parent 0c6682d commit cc9601f
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
43 changes: 43 additions & 0 deletions Runtime/Async/Coroutine/EditorCoroutineUtility.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

namespace StansAssets.Foundation.Async
{
[InitializeOnLoad]
public class EditorCoroutineUtility
{
private static List<IEnumerator> EditorCoroutine = new List<IEnumerator>();

public static IEnumerator StartEditorCoroutine(IEnumerator newCor)
{
EditorCoroutine.Add(newCor);
return newCor;
}

static EditorCoroutineUtility()
{
EditorApplication.update += ExecuteCoroutine;
}

static int currentExecute = 0;

private static void ExecuteCoroutine()
{
if (EditorCoroutine.Count <= 0)
{
return;
}

currentExecute = (currentExecute + 1) % EditorCoroutine.Count;

bool finish = !EditorCoroutine[currentExecute].MoveNext();

if (finish)
{
EditorCoroutine.RemoveAt(currentExecute);
}
}
}
}
11 changes: 11 additions & 0 deletions Runtime/Async/Coroutine/EditorCoroutineUtility.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit cc9601f

Please sign in to comment.