1. 程式人生 > >2018-10-17 協程 協同程式

2018-10-17 協程 協同程式

協同程式簡稱“協程”。在指令碼執行過程中,需要額外的執行一些其他的程式碼,

這個時候就可以將“其他程式碼”以協程的形式來執行。

類似於開啟了一個執行緒,但是協程不是執行緒。

 

協同程式的使用前提

只有在繼承了“MonoBehaviour”這個類的子類中才能使用相關的協程方法。

協同程式語法格式

協同程式就是一個程式碼片段,往往我們需要將這個程式碼片段封裝成一個方法,或者稱之為函式。

   IEnumerator test()
    {
        yield return new WaitForSeconds(2);
        Debug.Log("$");
    }

    IEnumerator test()
    {
        yield return new WaitForSeconds(2);
        Debug.Log("$");
    }

引數說明:

IEnumerator:協同程式的返回值型別;

yield return:協同程式返回 XXXX;

new WaitForSeconds(秒數):例項化一個物件,等待多少秒後執行。

Debug.log():這個就是等待多少秒後執行的任務。

 

開啟協同程式

StartCoroutine("協同程式方法名");

停止協同程式

StopCoroutine("協同程式方法名");

 

void Start ()
	{
	    Debug.Log("1");
	    Debug.Log("2");
	    StartCoroutine("test");
	    Debug.Log("4");
	}
	
	// Update is called once per frame
	void Update () {
	    if (Input.GetKeyDown(KeyCode.Space))
	    {
	        StopCoroutine("test");
	    }
	}

    IEnumerator test()
    {
        yield return new WaitForSeconds(2);
        Debug.Log("$");
        yield return new WaitForSeconds(3);
        Debug.Log("$%");
    }