|
|
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEditor;
- using UnityEngine;
-
-
- namespace TMPro.EditorUtilities
- {
- /// <summary>
- /// Simple implementation of coroutine working in the Unity Editor.
- /// </summary>
- public class EditorCoroutine
- {
- //private static Dictionary<int, EditorCoroutine> s_ActiveCoroutines;
-
- readonly IEnumerator coroutine;
-
- /// <summary>
- /// Constructor
- /// </summary>
- /// <param name="routine"></param>
- EditorCoroutine(IEnumerator routine)
- {
- this.coroutine = routine;
- }
-
-
- /// <summary>
- /// Starts a new EditorCoroutine.
- /// </summary>
- /// <param name="newCoroutine">Coroutine</param>
- /// <returns>new EditorCoroutine</returns>
- public static EditorCoroutine StartCoroutine(IEnumerator routine)
- {
- EditorCoroutine coroutine = new EditorCoroutine(routine);
- coroutine.Start();
-
- // Add coroutine to tracking list
- //if (s_ActiveCoroutines == null)
- // s_ActiveCoroutines = new Dictionary<int, EditorCoroutine>();
-
- // Add new instance of editor coroutine to dictionary.
- //s_ActiveCoroutines.Add(coroutine.GetHashCode(), coroutine);
-
- return coroutine;
- }
-
-
- /// <summary>
- /// Clear delegate list
- /// </summary>
- //public static void StopAllEditorCoroutines()
- //{
- // EditorApplication.update = null;
- //}
-
-
- /// <summary>
- /// Register callback for editor updates
- /// </summary>
- void Start()
- {
- EditorApplication.update += EditorUpdate;
- }
-
-
- /// <summary>
- /// Unregister callback for editor updates.
- /// </summary>
- public void Stop()
- {
- if (EditorApplication.update != null)
- EditorApplication.update -= EditorUpdate;
-
- //s_ActiveCoroutines.Remove(this.GetHashCode());
- }
-
-
- /// <summary>
- /// Delegate function called on editor updates.
- /// </summary>
- void EditorUpdate()
- {
- // Stop editor coroutine if it does not continue.
- if (coroutine.MoveNext() == false)
- Stop();
-
- // Process the different types of EditorCoroutines.
- if (coroutine.Current != null)
- {
-
- }
- }
- }
- }
|