樱花草在线播放免费高清观看,国产成人久久综合777777麻豆,啦啦啦在线视频免费观看正在播放1,在线天堂√中文,亚洲色大成网站www永久男同,国产丰满乱子伦无码专区,日韩精品 在线 国产 丝袜 ,三级在线看中文字幕完整版
  • 您的位置:首頁 > 新聞動態 > Unity3D

    unity3d中協程Coroutine的的原理及使用

    2019/1/9??????點擊:

    我們學習下unity3d中協程Coroutine的的原理及使用

    1.什么是協調程序

    unity協程是一個能暫停執行,暫停后立即返回,直到中斷指令完成后繼續執行的函數。

    它類似一個子線程單獨出來處理一些問題,性能開銷較小,但是他在一個MonoBehaviour提供的主線程里只能有一個處于運行狀態的協程。

    2.協同程序的特點

    1、協程在中斷指令(YieldInstruction)產生時暫停執行

    2、協程一暫停執行便立即返回 //中斷協程后返回主函數,暫停結束后繼續執行協程剩余的函數。

    3、中斷指令完成后從中斷指令的下一行繼續執行

    4、同一時刻、一個腳本實例中可以有多個暫停的協程,但只有一個運行著的協程

    5、函數體全部執行完后,協程結束

    6、協程可以很好的控制跨越一定幀數后執行的行為

    7、協程在性能上、相比于一般函數幾乎沒有更多的開銷

    3.創建一個協程函數

    注意:

    協同函數的返回值的類型必須是Coroutine,Coroutine繼承與Yieldinstruction。

    所以協同程序的返回類型就只能是null,等待的時間,等待的幀數。。由此可見WWW 也是實現了Coroutine的~

    4.開始一個協同程序

    通過MonoBehaviour提供的StartCoroutine方法來實現啟動協同程序。

    1、StartCoroutine(IEnumerator routine);

    優點:靈活,性能開銷小。

    缺點:無法單獨的停止這個協程,如果需要停止這個協程只能等待協同程序運行完畢或則使用StopAllCoroutine();方法。

    2、StartCoroutine (methodName:string, value : object = null);

    優點:可以直接通過傳入協同程序的方法名來停止這個協程:StopCoroutine(string methodName);

    缺點:性能的開銷較大,只能傳遞一個參數。

    5.停止協同程序

    1、StopCoroutine(string methodName);

    2、StopAllCoroutine();

    3、設置gameobject的active為false時可以終止協同程序,但是再次設置為true后協程不會再啟動。

    6.協同程序的執行順序

    開始協同程序 -> 執行協同程序 -> 中斷協同程序(中斷指令)-> 返回上層繼續執行

    ->中斷指令結束后繼續執行協同程序剩下的內容

    7.協同程序的注意事項

    1、不能再Update或者FixUpdate方法中使用協同程序,否則會報錯。

    2、關于中斷指令:

    中斷指令/YieldInstruction,一個協程收到中斷指令后暫停執行,返回上層執行同時等待這個指令達成后繼續執行。


      指令                      描述                          實現

    WaitForSeconds          等待指定秒數            yield return new WaitForSeconds(2);

    WaitForFixedUpdate      等待一個固定幀          yield return new WaitForFixedUpdate();

    WaitForEndOfFrame       等待幀結束              yield return new WaitForEndOfFrame();                         

    StartCoroutine          等待一個新協程暫停      yield return StartCoroutine(other coroutine);

    WWW                     等待一個加載完成        yield return www;

    注意:

    1、一個協程A里在中斷指令里再啟動一個協程B,在yield return StartCoroutine時執行的順序是:

    ①:先執行新協程B;

    ②:新協程B暫停后向上返回協程A,A協程暫停,返回協程A的上層函數;

    ③:因為決定協程A是否結束的標志是新協程B是否結束,所以當新協程B結束后返回協程A繼續執行余下的內容;

    ④:協程A執行結束。

    2、關于WWW的中斷指令可參考API:

    You can inspect the isDone property to see if the download has completed or yield the download object to automatically wait until it is (without blocking the rest of the game).

    你可以檢查isDone屬性來查看是否已經下載完成,或者yield自動等待下載物體,

    直到它被下載完成(不會影響游戲的其余部分)。

    3、協同程序的中斷返回機制也可用于指定時間間隔執行一個程序:

    主站蜘蛛池模板: 国产在线精品国自产拍影院同性| 老女人老熟女亚洲| 浮力影院50826| 国产婷婷色一区二区三区| 不卡无码人妻一区二区三区| 青草视频在线观看| 成人精品视频99在线观看免费| 色哟哟在线视频精品一区| 亚洲人精品亚洲人成在线| 肥大bbwbbw高潮抽搐| 熟妇的奶头又大又长奶水视频| 吃奶揉捏奶头高潮视频在线观看| 欧美性猛交xxxx乱大交蜜桃| 国产av第一次处破| 激情五月婷婷丁香六月| aⅴ久久欧美丝袜综合| 欧美熟女+性视频| 娇妻玩4p被三个男人伺候| 免费人成网站在线观看不卡| 跪趴式啪啪gif动态图27报| 最新亚洲av电影网站| jzzijzzij亚洲成熟少妇| 精品人妻少妇一区二区| 国产精品午夜福利在线观看| 色婷婷综合久久久久中文一区二区| 姑娘免费观看完整版高清中文| 一本久道久久综合久久爱| 在线视频网站www色| 不卡无码人妻一区二区三区| 大地资源二在线视频观看 | 国产欧美va欧美va香蕉在线| mm131美女图片尤物写真丝袜 | 少妇午夜啪爽嗷嗷叫视频| 天堂网www资源在线| 又色又爽又高潮免费观看| 老太大性另类xxxⅹ| 《熟妇的荡欲》在线观看| 国产精久久一区二区三区| ccyycom草草影院| 欧洲男同gay| 跪趴式啪啪gif动态图27报|