国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity 協(xié)程 Unity Task UniTask

這篇具有很好參考價(jià)值的文章主要介紹了Unity 協(xié)程 Unity Task UniTask。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

協(xié)程

使用 StartCoroutine 和 IEnumerator
yield return null 暫停執(zhí)行并隨后在下一幀恢復(fù)
yield return new WaitForSeconds(1f); 延遲1秒
waitfor系列有好幾個(gè)
Unity 協(xié)程 Unity Task UniTask
WaitForSeconds 和 WaitForSecondsRealtime 的區(qū)別

使用縮放時(shí)間將協(xié)程執(zhí)行暫停指定的秒數(shù)。

實(shí)際暫停時(shí)間等于給定時(shí)間除以 Time.timeScale。如果要使用未縮放時(shí)間進(jìn)行等待,請(qǐng)參閱 WaitForSecondsRealtime。在協(xié)程中,WaitForSeconds 只能與 yield 語(yǔ)句結(jié)合使用。

有一些因素可能意味著實(shí)際等待的時(shí)間量與指定的時(shí)間量不完全一致。
1 在當(dāng)前幀的 end 處開(kāi)始等待。如果您在一個(gè)非常長(zhǎng)的幀(例如,具有同步加載等阻止主線程的長(zhǎng)時(shí)間操作的幀)上使用持續(xù)時(shí)間“t”啟動(dòng) WaitForSeconds,協(xié)程將在幀結(jié)束后返回“t”秒,而不是取消后“t”秒。
2 允許協(xié)程在“t”秒后繼續(xù)在第一幀上執(zhí)行,不是確切的“t”秒之后。

WaitForEndOfFrame
等待,直到該幀結(jié)束,在 Unity 渲染每一個(gè)攝像機(jī)和 GUI 之后,在屏幕上顯示該幀之前。

可以用它將顯示內(nèi)容讀取到紋理中,將其編碼為圖像文件(請(qǐng)參閱 Texture2D.ReadPixels 和 Texture2D.Texture2D),并將其存儲(chǔ)在設(shè)備上。
從 Game 視圖切換到 Scene 視圖將導(dǎo)致 WaitForEndOfFrame 凍結(jié)。它只在應(yīng)用程序切換回 Game 視圖時(shí)才會(huì)繼續(xù)。只有當(dāng)應(yīng)用程序在 Unity 編輯器中運(yùn)行時(shí)才會(huì)發(fā)生這種情況。

注意:在批處理模式下,不會(huì)在編輯器上調(diào)用此協(xié)程。如需了解更多詳細(xì)信息,請(qǐng)參閱手冊(cè)中的命令行參數(shù)頁(yè)面。

WaitWhile 直到提供的委托評(píng)估為 false
WaitUntil 直到提供的委托評(píng)估為 true

注意:可以使用 StopCoroutine 和 StopAllCoroutines 來(lái)停止協(xié)程。 當(dāng)用 SetActive(false) 禁用某個(gè)協(xié)程所附加到的游戲?qū)ο髸r(shí),該協(xié)程也將停止。調(diào)用 Destroy(example)(其中 example 是一個(gè) MonoBehaviour 實(shí)例)會(huì)立即觸發(fā) OnDisable,并會(huì)處理協(xié)程,從而有效地停止協(xié)程。最后,在幀的末尾調(diào)用 OnDestroy。

通過(guò)在 MonoBehaviour 實(shí)例上將 enabled 設(shè)置為 false 來(lái)禁用 MonoBehaviour 時(shí),協(xié)程不會(huì)停止。

協(xié)程的缺點(diǎn)就是
他必須依賴 Monobehavior

Unity Task

相比 協(xié)程 Unity 的 Task 更加靈活

看例子

void Start()
{ 
     Debug.Log("1 : " + Thread.CurrentThread.ManagedThreadId);
     this.aaa();
     Debug.Log("2 : " + Thread.CurrentThread.ManagedThreadId);
}

async void aaa()
{
    Debug.Log("3 : " + Thread.CurrentThread.ManagedThreadId);
    await Task.Run(() =>
    {
        Debug.Log("5 : " + Thread.CurrentThread.ManagedThreadId);
        Thread.Sleep(3000);
        Debug.Log("6 : " + Thread.CurrentThread.ManagedThreadId);
    });
    Debug.Log("4 : " + Thread.CurrentThread.ManagedThreadId);
}

你會(huì)發(fā)現(xiàn) Task.Run 里面的內(nèi)容是單獨(dú)id 也就是 5 和 6
其他所有的都是主線程id文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-474826.html

到了這里,關(guān)于Unity 協(xié)程 Unity Task UniTask的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity 如何使用協(xié)程等待加載完成

    今天在項(xiàng)目打包后遇到一個(gè)bug 項(xiàng)目在電腦上跑沒(méi)問(wèn)題,但是在手機(jī)端時(shí),由于手機(jī)較差的性能,導(dǎo)致異步加載的資源需要等待較長(zhǎng)的時(shí)間. 而我在一個(gè)地方本以為是同步加載的資源,但是在調(diào)用時(shí)發(fā)現(xiàn)本該被加載完成的資源加載失敗, 大佬查看過(guò)底層實(shí)現(xiàn)后給出結(jié)論:這個(gè)資源使用了

    2024年02月16日
    瀏覽(27)
  • 【unity】C#協(xié)程IEnumerator的使用(下)

    在Unity中,使用協(xié)程可以很方便地實(shí)現(xiàn)延時(shí)執(zhí)行,即在一定的時(shí)間后執(zhí)行某個(gè)代碼塊。例如,我們可

    2024年02月01日
    瀏覽(18)
  • Unity C# 之 Task、async和 await 、Thread 基礎(chǔ)使用的Task的簡(jiǎn)單整理

    Unity C# 之 Task、async和 await 、Thread 基礎(chǔ)使用的Task的簡(jiǎn)單整理

    目錄 Unity C# 之 Task、async和 await 、Thread 基礎(chǔ)使用的Task的簡(jiǎn)單整理 一、Task、async和 await 、Thread 基礎(chǔ)概念 1、線程,多線程 2、Task ?3、async (await ) 二、Task 的基礎(chǔ)使用,Task 的創(chuàng)建 和 啟動(dòng) 1、創(chuàng)建并運(yùn)行一個(gè)Task 2、創(chuàng)建有返回值的 Task 3、Task提供了 task.RunSynchronously()用于同步

    2024年02月12日
    瀏覽(18)
  • Unity中C#使用協(xié)程控制Shader材質(zhì)變化

    Unity中C#使用協(xié)程控制Shader材質(zhì)變化

    在上一篇文章實(shí)現(xiàn)了C#腳本簡(jiǎn)單修改Shader材質(zhì)的效果后,我們使用按鈕點(diǎn)擊結(jié)合協(xié)程來(lái)實(shí)現(xiàn)一下游戲中角色常見(jiàn)的效果:受擊、中毒、消融效果 我們繼續(xù)使用上一篇的 Shader 和 C# 腳本來(lái)繼續(xù)測(cè)試 Unity中C#如何訪問(wèn)并修改Shader材質(zhì) Unity中的協(xié)程可以理解為 C# 中多線程的作用,在

    2024年02月04日
    瀏覽(27)
  • 【Unity3D日常開(kāi)發(fā)】Unity3D中協(xié)程的使用

    【Unity3D日常開(kāi)發(fā)】Unity3D中協(xié)程的使用

    推薦閱讀 CSDN主頁(yè) GitHub開(kāi)源地址 Unity3D插件分享 簡(jiǎn)書(shū)地址 我的個(gè)人博客 大家好,我是佛系工程師 ☆恬靜的小魔龍☆ ,不定時(shí)更新Unity開(kāi)發(fā)技巧,覺(jué)得有用記得一鍵三連哦。 最近有小伙伴問(wèn)協(xié)程怎么用、怎么寫(xiě),我也是會(huì)用會(huì)寫(xiě),但是原理不是很明白。 學(xué)習(xí)了一下,總結(jié)出

    2024年02月12日
    瀏覽(31)
  • Unity3D中的C#協(xié)程(概念、使用方法、底層原理)

    ???????? Unity3D 中的協(xié)程是針對(duì) Unity3D 框架和 C# 編程語(yǔ)言定制的 ,具有便捷的使用方式和良好的效率。其他語(yǔ)言Python、Lua等也支持協(xié)程,但是底層實(shí)現(xiàn)的細(xì)節(jié)可能不同。在 Unity3D 引擎中, 協(xié)程被 Unity3D?引擎的主循環(huán)所驅(qū)動(dòng) 。 ????????協(xié)程(Coroutine)是一種編程概念

    2024年02月08日
    瀏覽(27)
  • Unity C# 之 Task、async和 await 結(jié)合使用的一些情況處理

    目錄 Unity C# 之 Task、async和 await? 結(jié)合使用的一些情況處理 一、簡(jiǎn)單介紹 二、把 async 函數(shù),通過(guò)變化轉(zhuǎn)為一般的函數(shù) 三、在 async 函數(shù)中,切換到主線程,并等待主線程執(zhí)行完畢,繼續(xù) async 中的代碼 Unity 在使用 Task 結(jié)合 async (await) 的時(shí)候,偶爾會(huì)遇到一些特殊情況,需要

    2024年01月22日
    瀏覽(21)
  • Unity中的異步編程【5】——在Unity中使用 C#原生的異步(Task,await,async) - System.Threading.Tasks

    Unity中的異步編程【5】——在Unity中使用 C#原生的異步(Task,await,async) - System.Threading.Tasks

    1、System.Threading.Tasks中的Task是.Net原生的異步和多線程包。 2、UniTask(Cysharp.Threading.Tasks)是仿照.Net原生的Task,await,async開(kāi)發(fā)的一個(gè)包,該包專門服務(wù)于Unity,所以取名UnityTask,簡(jiǎn)稱UniTask。 3、既然有Task了,為啥還要搞一個(gè)UniTask (1)Task可以用在PC和Android上,但是在WebGL上則會(huì)

    2023年04月17日
    瀏覽(25)
  • 【unity知識(shí)點(diǎn)】Unity 協(xié)程Coroutine

    【unity知識(shí)點(diǎn)】Unity 協(xié)程Coroutine

    Unity 協(xié)程是一種特殊的函數(shù),可以在游戲中實(shí)現(xiàn)延遲執(zhí)行、按順序執(zhí)行和異步操作等功能。它使用了迭代器(Iterator)的概念,通過(guò) yield 來(lái)控制執(zhí)行流程。下面是 Unity 協(xié)程的使用和使用場(chǎng)景的詳細(xì)介紹。 在腳本中定義一個(gè)協(xié)程方法,返回值類型為 IEnumerator 。 在協(xié)程方

    2024年02月01日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包