public class Coroutine : MonoBehaviour
{
private int Ret = 0;
//协程的简单写法
void Start()
{
//开启Test1协程
StartCoroutine(Test1());
//开启Test协程
StartCoroutine("Tes2");
//启动协程时就可以吧参数传递进去
StartCoroutine(Test3(5, 8));
private IEnumerator Test1()
{
//协程等待指定的秒数
yield return new WaitForSeconds(2f);
Debug.Log("Text1执行完毕");
//yield return 0;
//Debug.Log("协程执行完毕");
{
//协程等待指定的秒数
yield return new WaitForSeconds(5f);
Debug.Log("Test2协程执行完毕");
}
//协程也是可以传递参数的
private IEnumerator Test3(int x, int y)
{
//协程等待指定的秒数
yield return new WaitForSeconds(5f);
Ret = x * y;
Debug.Log("Test2协程执行完毕");
}
void Update()
{
//键盘输入A
if (Input.GetKeyUp(KeyCode.A))
{
Debug.Log("Ret=" + Ret);
}
//键盘输入B
if (Input.GetKeyUp(KeyCode.B))
{
//终止协程
StopAllCoroutines();
//第二种终止协程的方法
StopCoroutine("Test2");
}
}
}
{
private int Ret = 0;
//协程的简单写法
void Start()
{
//开启Test1协程
StartCoroutine(Test1());
//开启Test协程
StartCoroutine("Tes2");
//启动协程时就可以吧参数传递进去
StartCoroutine(Test3(5, 8));
}
private IEnumerator Test1()
{
//协程等待指定的秒数
yield return new WaitForSeconds(2f);
Debug.Log("Text1执行完毕");
//yield return 0;
//Debug.Log("协程执行完毕");
}
{
//协程等待指定的秒数
yield return new WaitForSeconds(5f);
Debug.Log("Test2协程执行完毕");
}
//协程也是可以传递参数的
private IEnumerator Test3(int x, int y)
{
//协程等待指定的秒数
yield return new WaitForSeconds(5f);
Ret = x * y;
Debug.Log("Test2协程执行完毕");
}
void Update()
{
//键盘输入A
if (Input.GetKeyUp(KeyCode.A))
{
Debug.Log("Ret=" + Ret);
}
//键盘输入B
if (Input.GetKeyUp(KeyCode.B))
{
//终止协程
StopAllCoroutines();
//第二种终止协程的方法
StopCoroutine("Test2");
}
}
}