Unity零基础到入门 ☀️| 使用协程的方法案例
【摘要】 💛使用协程 🚩定义协程首先我们需要通过IEnumerator 定义一个协程,要通过yield return来定义返回值我们先来创建一个简单协程看一下代码,下面就是一个简单的协程! IEnumerator Test(string str) { //代码块 Debug.Log("协程被启动了!"+ str); yield return ...
💛使用协程
🚩定义协程
首先我们需要通过IEnumerator
定义一个协程,要通过yield return
来定义返回值
我们先来创建一个简单协程看一下代码,下面就是一个简单的协程
!
IEnumerator Test(string str)
{
//代码块
Debug.Log("协程被启动了!"+ str);
yield return null;
//代码块
}
🚩启动协程
协程定义完了需要我们进行启动,启动协程有以下几种方法
StartCoroutine(string methodName)
:通过协程的方法名(字符串形式)启动StartCoroutine(string methodName,object values)
:带参数的通过方法名(字符串形式)进行调用StartCoroutine(IEnumerator routine)
:通过调用方法的形式启动
如果不是很明白,看一下代码就清楚了
void Start()
{
//通过调用方法名来启动协程(第一种方法)
StartCoroutine("Test1");
//通过调用方法名来启动协程(第二种方法)
StartCoroutine("Test2", "Hello World");
//直接调用方法启动协程(第三种方法)
StartCoroutine(Test1());
StartCoroutine(Test2("Hello World"));
}
IEnumerator Test1()
{
//代码块
Debug.Log("协程被启动了!");
yield return null;
//代码块
}
IEnumerator Test2(string str)
{
//代码块
Debug.Log("协程被启动了!" + str);
yield return null;
//代码块
}
🚩停止协程
协程有一个启动的方法,也有对应的停止协程的方法
StopCoroutine
与StopAllCoroutines
两种方式都可以停止协程
StopAllCoroutines
的作用是停止所有该脚本中启动的协程
使用方法也很简单,直接调用就可以了!
//关闭该脚本中启动的所有协程!
StopAllCoroutines();
StopCoroutine
中又有三种方式
StopCoroutine(string methodName)
:通过方法名(字符串)来关闭协程StopCoroutine(IEnumerator routine)
:通过调用方法的形式来关闭协程StopCoroutine(Coroutine routine)
:通过指定的协程来关闭
看一下代码实际操作
void StopTest()
{
//第一种方式:通过调用方法的形式来关闭协程
StopCoroutine(Test1());
//第二种方式:通过方法名(字符串)来关闭协程
StopCoroutine("Test1");
//第三种方式:通过指定的协程来关闭
Coroutine a = StartCoroutine(Test1());
StopCoroutine(a);
//关闭该脚本中启动的所有协程!
StopAllCoroutines();
}
这里有一个地方一定要注意:使用哪一种开启协程的方法,就要使用哪一种方式来关闭协程!
比如是使用字符串的方式启用协程,
例:StartCoroutine("Test1");
那就要使用字符串的方式来关闭,StopCoroutine("Test1");
同理 使用调用方法的形式开启,那就要使用调用方法的方式来关闭协程!
具体为什么要有这样的规则,俺也不知道,遵从使用即可,就是这样规定的,以后有时间可以研究源码看看~
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)