// 功能:
// 掛載對(duì)象:
//注意:
using UnityEngine;
using System.Collections;
public class CoroutineTestScript : MonoBehaviour
{
///
/// 協(xié)程: 一個(gè)返回值是IEnumerator 的接口
/// 協(xié)程功能: 將一個(gè)方法拆成多步執(zhí)行
/// yield 意思為 放棄 退位 ?在這里的意思是暫停一下 等待一個(gè)條件滿足后再?gòu)倪@里繼續(xù)開始
/// 協(xié)程的開啟和停止:
/// 開啟協(xié)程有兩種形式 ?StartCoroutine (PrintMethod ());
/// 或StartCoroutine ("PrintMethod");
/// 協(xié)程和線程不是一回事
/// 線程是操作系統(tǒng)級(jí)別的 協(xié)程是操作編輯器級(jí)別的
///停止協(xié)程 只能停止字符串開啟的協(xié)程
///StopCoroutine ();
///
///
void Start ()
{
// 開啟協(xié)程
StartCoroutine (PrintMethod ());
//或者
//StartCoroutine ("PrintMethod");
// 停止協(xié)程 只能停止字符串開啟的協(xié)程
//StopCoroutine ();
}
void NormalMethod ()
{
print ("普通方法");
}
//協(xié)程
IEnumerator PrintMethod ()
{
print ("第一步");
//yield return null; ?等待下一幀 直到繼續(xù)執(zhí)行為止
yield return new WaitForSeconds (5); // 等待5秒 5秒以后再?gòu)倪@里繼續(xù)
print ("第二步");
yield return null;
print ("第三步");
yield return new WaitForSeconds (3);
StartCoroutine (DoMethod ());
}
IEnumerator DoMethod ()
{
print ("第二個(gè)協(xié)程");
yield return 0;
print ("第二個(gè)結(jié)束");
}
//void Update(){
////調(diào)用頻率很快 無(wú)法等待 可以使用協(xié)程解決這個(gè)問題
//}
}