Unity学习笔记——协程

协程在Unity中的含义:在主进程中开启另外一段业务逻辑,来协同当前程序的执行

协程在Unity中的方法:

StartCoroutine

Starts a coroutine. 
开始协同程序。

StopAllCoroutines

Stops all coroutines running on this behaviour. 
停止运行此behaviour上的所有协同程序。

StopCoroutine

Stops all coroutines named methodName running on this behaviour. 
停止此behaviour上运行的所有名为methodName的协同程序。

协程是在主线程中执行的,这一点与多线程不同,在Unity中,我们通过StartCoroutine来开启一段协程,其形式有以下两种:

StartCoroutine(MyCorutine());

或者

StartCoroutine(MyCorutine);

 

注意:

1、当你想停止MonoBehaviour对象中的某个协程时,开启与停止协程需要使用相同的形式,不可混合使用.

2、StartCoroutineMonoBehaviour的一种方法,该方法可以启动一个协程,协程必须是一个IEnumerator作为返回值的方法。

3、协程不是线程,也不是异步。协程是和MonoBehaviour的其他更新函数一样,都是在MainThread中执行的。

using System.Collections;
using UnityEngine;

public class Test_Coroutine : MonoBehaviour {

    // Use this for initialization
    void Start()
    {
        StartCoroutine(MyCoroutine()); //开启协程

        StopCoroutine(MyCoroutine()); //关闭协程
    }
	
	
    IEnumerator MyCoroutine()  //协程的入口函数
    {
        Debug.Log("协程被执行");

        yield return null;
    }
}

yield 的挂起指令类型:

null

协程将在下一帧所有脚本的Update执行之后,再继续执行.

WaitForSecond

协程在延迟指定时间,且当前帧所有脚本的Update全都执行结束后才继续执行.

WaitForFixedUpdate

协程在所有脚本的FixedUpdate执行之后,再继续执行.

WWW

协程在WWW下载资源完成后,再继续执行.

StartCoroutine

协程在指定协程执行结束后,再继续执行.

WaitForSecondsRealtime

WaitForSeconds类似,但不受时间缩放影响.

WaitWhile

当返回条件为假时才执行后续步骤.

WaitForEndOfFrame

在所有渲染和GUI完成之后,协程在框架上执行.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值