2018-10-17 協程 協同程式
阿新 • • 發佈:2018-11-10
協同程式簡稱“協程”。在指令碼執行過程中,需要額外的執行一些其他的程式碼,
這個時候就可以將“其他程式碼”以協程的形式來執行。
類似於開啟了一個執行緒,但是協程不是執行緒。
協同程式的使用前提
只有在繼承了“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("$%"); }