UntiyC#編程:Coroutine協(xié)同程序

1.從需求出發(fā)

延時是游戲編程中最常見的需求之一,角色的移動控制需要延時,事件觸發(fā)需要延時。有鑒于此,很多的游戲引起都會對延時控制提供了很好的支持,但從實現(xiàn)的層面來講,基本都是“標(biāo)記開始時間,在Update中持續(xù)更新檢查”的方法,代碼上實現(xiàn),如下圖所示:

實現(xiàn)延遲的方法

但這個方法并不是最佳的方法,在Untiy中,我們用于實現(xiàn)延時最好的方法是使用Coroutine,也就是協(xié)同函數(shù)。

2.Coroutine的使用

如果我們按照Untiy中Coroutine函數(shù)的實現(xiàn)方法去實現(xiàn)如上圖Update內(nèi)的函數(shù),大致如下圖所示:

Coroutine函數(shù)實現(xiàn)延遲

你需要的就是聲明一個返回值為IEnumrator的方法,然后在方法中使用yield return語法去返回一個 WaitForSenconds()的實例(返回值有很多,你也可以返回null),然后在需要用的時候 (如例子中在Start()方法中調(diào)用)通過StartCorutine(協(xié)程函數(shù)的方法名)去調(diào)用,從而實現(xiàn)延遲的功能。當(dāng)然,能通過StartCoroutine方法去調(diào)用協(xié)程函數(shù),那么也存在StopCoroutine(“協(xié)程函數(shù)的方法名”)去關(guān)閉協(xié)程。


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

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

  • 我是在深入學(xué)習(xí) kotlin 時第一次看到協(xié)程,作為傳統(tǒng)線程模型的進化版,雖說協(xié)程這個概念幾十年前就有了,但是協(xié)程...
    前行的烏龜閱讀 100,460評論 32 182
  • 前言 ?今年的Google開發(fā)者大會已表明將Kotlin作為其正式的語言,現(xiàn)Google大力主推Kotlin, 在...
    Vgecanshang閱讀 3,718評論 0 15
  • title標(biāo)題: A Web Crawler With asyncio Coroutinesauthor作者: A...
    彰樂樂樂樂閱讀 2,207評論 0 8
  • 我第一次知道創(chuàng)業(yè)這個詞是父親教給我的。當(dāng)然,很早之前這個詞還不流行,準(zhǔn)確的說是為自己工作。 在體制內(nèi)工作是體面穩(wěn)定...
    會飛的龍貓閱讀 896評論 7 3
  • 今天2月25號,陰天有點冷,開工到現(xiàn)在,各種累,招人如在茫茫人海中尋覓男朋友,難,不好找,有的人條件越來越高,又不...
    遙一遠一的一夢閱讀 183評論 0 6

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