Unity协程&在编辑器中使用协程

尊重原创,转载请在文首注明出处:http://blog.youkuaiyun.com/cai612781/article/details/78992805

一,定义

Unity协程(Coroutine),不是卖机票的携程,是一种类似子线程的机制,可以用来实现一些延时处理的需求,c#中通过yield return语句配合可以中断执行,延时一定时间后从中断处继续执行。


二,注意

协程不是线程,协程不是线程,协程不是线程,协程还是在主线程里!!!


三,语法

脚本需要继承MonoBehaviour,提供了两个方法StartCoroutine(IEnumerator routine)或者StartCoroutine(string methodName)开启一个协程,以及对应的StopCoroutine(IEnumerator routine)或StopCoroutine(string methodName)关闭协程。推荐使用前者,因为传递方法名需要用到反射机制,影响性能。


四,常见应用

1)延时(别想歪)

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
	IEnumerator Start()
	{
		Debug.Log("Start--" + Time.time);
		yield return StartCoroutine(WaitAndLog);
		Debug.Log("End--" + Time.time);
	}
	
	IEnumerator WaitAndLog()
	{
		yield return new WaitForSeconds(3);
		Debug.Log("Wait--" + Time.time);
	}
}
2)分帧加载

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
	private int _num,_total;
	Start()
	{
		StartCoroutine(LoadAssets);
	}
	
	IEnumerator LoadAssets()
	{
		while(
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值