CoroutineStarter.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace JC.Unity {
  5. // 协程启动器
  6. public class CoroutineStarter : MonoBehaviour
  7. {
  8. private static CoroutineStarter _instance;
  9. private static CoroutineStarter Instance {
  10. get {
  11. if ( _instance == null ) {
  12. GameObject obj = new GameObject("CoroutineStarter");
  13. obj.AddComponent<CoroutineStarter>();
  14. }
  15. return _instance;
  16. }
  17. }
  18. void Awake() {
  19. _instance = this;
  20. DontDestroyOnLoad(gameObject);
  21. }
  22. /// <summary>
  23. /// 开启协程
  24. /// </summary>
  25. /// <param name="enumerator"></param>
  26. public static Coroutine Start(IEnumerator enumerator) {
  27. return Instance.StartCoroutine(enumerator);
  28. }
  29. public static void Stop(Coroutine coroutine) {
  30. Instance.StopCoroutine(coroutine);
  31. }
  32. }
  33. }