最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity延時(shí)執(zhí)行的多種方法小結(jié)

 更新時(shí)間:2021年07月06日 16:13:43   作者:時(shí)光不染  
本文主要介紹了4種延時(shí)執(zhí)行的方法,主要包括Update計(jì)時(shí)器,Invoke,協(xié)程,DoTween,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

最開始接觸unity的時(shí)候,我做延時(shí)都是在update里做計(jì)時(shí)器。后來才發(fā)現(xiàn),我屮艸芔茻,還有這么多種更方便延時(shí)執(zhí)行的方式?,F(xiàn)在我們就來捋一捋。

本文列舉的有以下四種,如有錯(cuò)漏,歡迎補(bǔ)充指正

Update Invoke 協(xié)程 DoTween
支持參數(shù)傳入 ✖️ ✖️ ✔️ ✖️

下表是在不同情況下各方案的執(zhí)行狀態(tài)

Update Invoke 協(xié)程 DoTween
Time.timeScale = 0 ✔️ ✖️ ✖️ ✔️
activeSelf == false ✖️ ✔️ ✖️ ✔️
enabled == false ✖️ ✔️ ✔️ ✔️
destroy ✖️ ✖️ ✖️ ✔️

Update計(jì)時(shí)器

在Update等刷新函數(shù)內(nèi)計(jì)時(shí),timer += Time.deltaTime 當(dāng)時(shí)間達(dá)到預(yù)期,執(zhí)行需要延時(shí)的方法。 需要注意的是,增量時(shí)間Time.deltaTime是每幀都不同的浮點(diǎn)數(shù)。計(jì)時(shí)器不能用 == 去判斷達(dá)成條件。需要用 > 或 >= 加一個(gè)標(biāo)志位。以確保函數(shù)能執(zhí)行到且只執(zhí)行一次 Update在 Time.timeScale = 0 時(shí)會(huì)正常執(zhí)行,但這時(shí)Time.deltaTime的值為0。需要這時(shí)使用計(jì)時(shí)器的話,可以使用Time.realtimeSinceStartup

 private float delayTime = 1;
    private float timer = 0;
    private bool executed = false;
    void Update(){
        if (executed == false){
            timer += Time.deltaTime;
            if (timer >= 1){
                executed = true;
                DelayFunc();
            }
        }
    }
    private void DelayFunc(){
        print("執(zhí)行測試函數(shù)");
    }

Invoke

Invoke() 方法是 Unity3D 的一種委托機(jī)制。使用簡單便捷。 但是這個(gè)家伙和其他方式不太一樣的是,隱藏物體或?qū)⒛_本enabled 設(shè)置為false,并不會(huì)中斷Invoke的執(zhí)行。 Invoke支持重復(fù)調(diào)用: InvokeRepeating("方法名",延時(shí)時(shí)長,每次調(diào)用間隔時(shí)長)

 private float delayTime = 5;
    private void Start(){ 
        Invoke("DelayFunc",delayTime);
        //InvokeRepeating("DelayFunc",delayTime,cdTime);
    }
    private void DelayFunc(){
        print("執(zhí)行測試函數(shù)");
    }

協(xié)程

協(xié)程本質(zhì)是迭代器,寫法麻煩,但很好用??梢匝訒r(shí)固定時(shí)間,也可以延時(shí)固定幀。
點(diǎn)擊這里是一個(gè)協(xié)程的管理類,支持暫停繼續(xù)等功能

  private float timer = 0;
    private void Start()
    {
        StartCoroutine("DelayFunc");
        Time.timeScale = 0;
    }
    IEnumerator DelayFunc()
    {
        while ( timer < 30)
        {
            yield return new WaitForSeconds(1);
            timer++;
            print("執(zhí)行測試函數(shù)"+timer); 
        }
    }

DoTween

如果你使用UGUI,那么你一定知道DoTween。DoTween是很常用的簡單動(dòng)畫插件,但有時(shí)候我們能用它來做一些奇怪的操作。比如延時(shí)函數(shù) 執(zhí)行后只能通過 seq.Pause();seq.Kill();等自帶函數(shù)關(guān)閉。 Time.timeScale = 0,隱藏物體,禁用腳本,刪除物體等情況下,均繼續(xù)執(zhí)行方法。

 private void Start()
    {
        seq = DOTween.Sequence();
        seq.AppendInterval(5);
        seq.AppendCallback(DelayFunc);
        seq.SetAutoKill(false);
        seq.SetUpdate(true);//設(shè)為true時(shí)可在Time.timeScale=0的情況下正常執(zhí)行
        
    }
    void DelayFunc()
    {
        print("執(zhí)行測試函數(shù)"); 
    }

到此這篇關(guān)于Unity延時(shí)執(zhí)行的多種方法小結(jié)的文章就介紹到這了,更多相關(guān)Unity延時(shí)執(zhí)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#中事件只能在內(nèi)部調(diào)用的原因分析

    C#中事件只能在內(nèi)部調(diào)用的原因分析

    事件(Event)?基本上說是一個(gè)用戶操作,如按鍵、點(diǎn)擊、鼠標(biāo)移動(dòng)等等,或者是一些提示信息,如系統(tǒng)生成的通知。應(yīng)用程序需要在事件發(fā)生時(shí)響應(yīng)事件,這篇文章主要介紹了C#中事件為什么只能在內(nèi)部調(diào)用,需要的朋友可以參考下
    2021-11-11
  • winform壁紙工具為圖片添加當(dāng)前月的日歷信息

    winform壁紙工具為圖片添加當(dāng)前月的日歷信息

    使用用winform做了一個(gè)設(shè)置壁紙小工具,為圖片添加當(dāng)月的日歷并設(shè)為壁紙,可以手動(dòng)/定時(shí)設(shè)置壁紙,最主要的特點(diǎn)是在圖片上生成當(dāng)前月的日歷信息,感興趣的你可以參考下
    2013-03-03
  • c#檢測端口是否被占用的簡單實(shí)例

    c#檢測端口是否被占用的簡單實(shí)例

    這篇文章主要介紹了c#檢測端口是否被占用的簡單實(shí)例,有需要的朋友可以參考一下
    2013-12-12
  • unity制作瞄準(zhǔn)鏡效果

    unity制作瞄準(zhǔn)鏡效果

    這篇文章主要為大家詳細(xì)介紹了unity制作瞄準(zhǔn)鏡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 淺談C#數(shù)組(一)

    淺談C#數(shù)組(一)

    本篇文章小編要得大家介紹的是C#數(shù)組,數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),它可以包含同一個(gè)類型的多個(gè)元素,如果需要使用同一類型的多個(gè)對象,可以使用數(shù)組和集合,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • C#中方括號[]的語法及作用介紹

    C#中方括號[]的語法及作用介紹

    C#中方括號[]可用于數(shù)組,索引、屬性,更重要的是用于外部DLL類庫的引用。
    2013-04-04
  • 關(guān)于C#中排序函數(shù)的總結(jié)

    關(guān)于C#中排序函數(shù)的總結(jié)

    下面小編就為大家?guī)硪黄P(guān)于C#中排序函數(shù)的總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • C#生成比較短的Token字符串

    C#生成比較短的Token字符串

    這篇文章介紹了C#生成Token字符串的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#將異步改成同步方法示例

    C#將異步改成同步方法示例

    這篇文章主要為大家介紹了C#將異步改成同步方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • C#實(shí)現(xiàn)圖像選擇驗(yàn)證碼的示例代碼

    C#實(shí)現(xiàn)圖像選擇驗(yàn)證碼的示例代碼

    為了防止網(wǎng)站被非法登陸,網(wǎng)站一般通過驗(yàn)證碼的方式,防止黑客用軟件非法登陸,本文主要介紹了C#實(shí)現(xiàn)圖像選擇驗(yàn)證碼的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08

最新評論

文水县| 乡城县| 太原市| 平舆县| 宜兰市| 阳城县| 颍上县| 郧西县| 五莲县| 金川县| 军事| 鄂温| 滁州市| 安义县| 依兰县| 勃利县| 桑日县| 金塔县| 南澳县| 防城港市| 西畴县| 通道| 荔波县| 泰兴市| 永德县| 保靖县| 屏南县| 康保县| 瑞丽市| 沛县| 砚山县| 怀宁县| 开远市| 松江区| 华容县| 中西区| 禹州市| 彩票| 潜江市| 同德县| 大余县|