当前位置:   article > 正文

Unity日记22(携程概念)_unity 携程

unity 携程

 

目录

学习视频

携程

1异步

2调用方法

3优点

4停止方法

         5返回值

实例:每过一秒打印当前运行时间

实例:停止数字打印携程

错误方法:(携程只能开一个)

参考方法


学习视频

https://www.bilibili.com/video/BV1eu411U7EL/?spm_id_from=333.337.search-card.all.click&vd_source=ab35b4ab4f3968642ce6c3f773f85138

携程

是一个返回值是IEnumerator的函数,异是一个步多任务处理的函数

异步

异步多任务处理:穿插处理任务

异步意味着不停止就会运行。

调用方法

startcoroutine(方法)

startcoroutine(方法名)

优点

代替update的方法:update方法,每帧执行一次,非常消耗内存。

停止方法

StopCoroutine(方法名)

StopAllCoroutines()

 

返回值

实例:每过一秒打印当前运行时间

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class IEnumer : MonoBehaviour
  5. {
  6. void Start()
  7. {
  8. StartCoroutine(Timer());
  9. }
  10. IEnumerator Timer()
  11. {
  12. int count = 0;
  13. while (true)
  14. {
  15. yield return new WaitForSeconds(1);
  16. count++;
  17. Debug.Log(count);
  18. }
  19. }
  20. }

实例:停止数字打印携程

判断成功标准:不再打印数字

错误方法:(携程只能开一个)

Func_Controller没把Timer停下来

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class IEnumer : MonoBehaviour
  5. {
  6. int count = 0;
  7. void Start()
  8. {
  9. StartCoroutine(Timer());
  10. StopCoroutine(Func_Controller());//5秒后停止指定携程
  11. }
  12. IEnumerator Timer()
  13. {
  14. while (true)
  15. {
  16. yield return new WaitForSeconds(1);
  17. count++;
  18. Debug.Log(count);
  19. }
  20. }
  21. IEnumerator Func_Controller()
  22. {
  23. if (count >= 5)
  24. {
  25. StopCoroutine(Timer());
  26. Debug.Log("STOP");
  27. yield return 1;
  28. }
  29. }
  30. }

参考方法

在TImer里面写,在同一个携程内实现停止自身。

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class IEnumer : MonoBehaviour
  5. {
  6. int count = 0;
  7. void Start()
  8. {
  9. StartCoroutine(Timer());
  10. }
  11. IEnumerator Timer()
  12. {
  13. while (true)
  14. {
  15. yield return new WaitForSeconds(1);//等一秒
  16. count++;
  17. Debug.Log(count);
  18. if (count >= 5)
  19. {
  20. StopCoroutine(Timer());
  21. Debug.Log("STOP");
  22. yield break;
  23. }
  24. }
  25. }
  26. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/94439
推荐阅读
相关标签
  

闽ICP备14008679号