Unity之協(xié)程

協(xié)程,又稱微線程,纖程。英文名Coroutine。
子程序,或者稱為函數(shù),在所有語(yǔ)言中都是層級(jí)調(diào)用,比如A調(diào)用B,B在執(zhí)行過(guò)程中又調(diào)用了C,C執(zhí)行完畢返回,B執(zhí)行完畢返回,最后是A執(zhí)行完畢。

因?yàn)閰f(xié)程是一個(gè)線程執(zhí)行,那怎么利用多核CPU呢?最簡(jiǎn)單的方法是多進(jìn)程+協(xié)程,既充分利用多核,又充分發(fā)揮協(xié)程的高效率,可獲得極高的性能。

1、參數(shù)說(shuō)明:

IEnumerator:協(xié)同程序的返回值類型;
yield return:協(xié)同程序返回 xxxxx;
new WaitForSeconds (秒數(shù)):實(shí)例化一個(gè)對(duì)象,等待多少秒后繼續(xù)執(zhí)行。 這個(gè) Task3()的作用就是等待兩秒后,繼續(xù)執(zhí)行任務(wù) 3.

2.開(kāi)啟協(xié)同程序

StartCoroutine(“協(xié)同程序方法名”);
這個(gè) StartCoroutine 有三種重載形式,目前先只介紹這一種。

3.停止協(xié)同程序

StopCoroutine(“協(xié)同程序方法名”);
這個(gè) StopCoroutine 也有三種重載形式,目前先只介紹這一種。

使用協(xié)程,實(shí)現(xiàn)一個(gè) ??,移動(dòng)。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BoxMove : MonoBehaviour {

private Vector3 v = new Vector3 ();
private float speed = 0.0375f;


void Start () {
    v.z = speed;

    StartCoroutine (Routine());
}

void Update () {
    
}


void FixedUpdate()
{
    transform.position += v;
}

//協(xié)程
IEnumerator Routine()
{
    v.z = speed;
    v.x = 0;

    yield return new WaitForSeconds (3f);
    v.z = 0;
    v.x = -speed;

    yield return new WaitForSeconds (3f);
    v.z = -speed;
    v.x = 0;

    yield return new WaitForSeconds (3f);
    v.z = 0;
    v.x = speed;
    yield return new WaitForSeconds (3f);

    StartCoroutine (Routine());
}
}
4.00.11.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文鏈接:https://github.com/EasyKotlin 在常用的并發(fā)模型中,多進(jìn)程、多線程、分布式是...
    JackChen1024閱讀 10,891評(píng)論 3 23
  • 原創(chuàng)文章出自公眾號(hào):「碼農(nóng)富哥」,如需轉(zhuǎn)載請(qǐng)請(qǐng)注明出處!文章如果對(duì)你有收獲,可以收藏轉(zhuǎn)發(fā),這會(huì)給我一個(gè)大大鼓勵(lì)喲!...
    大富帥閱讀 10,220評(píng)論 3 21
  • Unity技術(shù)面試題 一:什么是協(xié)同程序? 答:在主線程運(yùn)行時(shí)同時(shí)開(kāi)啟另一段邏輯處理,來(lái)協(xié)助當(dāng)前程序的執(zhí)行。換句話...
    沐冉閱讀 3,028評(píng)論 1 19
  • 今天麗輝上班,宇航和劉琦休息,今天天氣很晴朗,晴朗的天兒對(duì)于舊金山來(lái)說(shuō),午間的太陽(yáng)是很曬的,下午2點(diǎn)鐘,...
    天澤家人閱讀 731評(píng)論 0 1
  • 1、chrome的滾動(dòng)條自定義 2、超文本顯示
    zooey1184閱讀 233評(píng)論 0 0

友情鏈接更多精彩內(nèi)容