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

Unity——延時執(zhí)行的幾種方法

這篇具有很好參考價值的文章主要介紹了Unity——延時執(zhí)行的幾種方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.什么是延遲函數(shù)

延時執(zhí)行的函數(shù),可以自己設定延時要執(zhí)行的函數(shù)和具體延時的時間,是Monobehaviour基類中實現(xiàn)好的方法

1.Update定時器

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

public class Test : MonoBehaviour
{
    public float timer = 0f;

    void Update()
    {
        timer += Time.deltaTime;
        if (timer >= 2)
        {
            Func();
            timer = 0f; // 定時2秒
        }
    }
    void Func()
    {
        Debug.Log("每2秒執(zhí)行一次");
    }
}

2.Invoke函數(shù)

Invoke是MonoBehaviour提供的函數(shù),可以延時調用函數(shù),但是,Invoke的調用是在運行時生效的,對于Func函數(shù),很容易導致在代碼審查階段被誤殺—函數(shù)刪除后,編譯不會報錯。Invoke支持重復調用: InvokeRepeating("方法名",延時時長,每次調用間隔時長)

public class Test : MonoBehaviour
{
    private float delayTime = 2;
    private void Start()
    {
        Invoke("Func", delayTime);
        //InvokeRepeating("DelayFunc",delayTime,cdTime);
    }
    private void Func()
    {
        Debug.Log("延遲2s執(zhí)行該函數(shù)");
    }
}

取消延時函數(shù):?

//取消延遲函數(shù)
//取消該腳本上的所有延時函數(shù)執(zhí)行
CancelInvoke();

//指定函數(shù)名取消
//只要取消了指定延遲 不管之前該函數(shù)開啟了多少次 延遲執(zhí)行 都會統(tǒng)一取消
CancelInvoke(nameof(DelayDoSomething));

3.協(xié)程?Coroutine

協(xié)程本質是迭代器

public class Test : MonoBehaviour
{
    private void Start()
    {
        StartCoroutine(Show());
    }
    private IEnumerator Show()
    {
        yield return new WaitForSeconds(2);
        Func();
    }

    private void Func()
    {
        Debug.Log("延時2s執(zhí)行");
    }
}

4.DoTween 方法實現(xiàn)

DoTween函數(shù)中提供了一個方法dotween.to函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-508967.html

	/// <summary>
    /// DOTweenTo延時回調
    /// </summary>
    /// <param name="delayedTimer">延時的時間</param>
    /// <param name="loopTimes">循環(huán)次數(shù),0:不循環(huán);負數(shù):無限循環(huán);正數(shù):循環(huán)多少次</param>
    public void DOTweenToTest(float delayedTimer, int loopTimes)
    {
        float timer = 0;
        //DOTwwen.To()中參數(shù):前兩個參數(shù)是固定寫法,第三個是到達的最終值,第四個是漸變過程所用的時間
        Tween t = DOTween.To(() => timer, x => timer = x, 1, delayedTimer)
                      .OnStepComplete(() =>
                      {
                          print("調用函數(shù)");
                      })
                      .SetLoops(loopTimes);        
    }

到了這里,關于Unity——延時執(zhí)行的幾種方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • unity學習筆記-延遲執(zhí)行方法

    我辣雞,不會用

    2024年02月06日
    瀏覽(24)
  • JavaScript:延遲訪問和延時執(zhí)行函數(shù)

    在java中線程有sleep函數(shù)可以延遲執(zhí)行,但是在js中并沒有這樣的函數(shù)。 唯一有的就是setTimeout延遲執(zhí)行函數(shù),但是這個函數(shù)也是有很多坑。 場景:由于js是單線程異步執(zhí)行的,當調用第三方API接口時,如果對方?jīng)]有提供批量操作的接口,我們就需要多次請求相同的API,但是在

    2024年02月12日
    瀏覽(37)
  • Unity三種方法實現(xiàn)延遲執(zhí)行

    1.定義一個返回值為 IEnumerator 的方法,在通過 StartCoroutine 開啟這個協(xié)程即可。 注意這里需要使用的是 IEnumerato 而不是 IEnumerable 這兩者的區(qū)別: IEnumerator :是一個迭代器接口 IEnumerable :是在IEnumerator基礎上的一個封裝接口,有一個GetEnumerator()方法返回IEnumerator StartCoroutine 的幾

    2024年02月07日
    瀏覽(19)
  • SpringBoot 啟動項目后執(zhí)行方法的幾種方式

    在項目開發(fā)中某些場景必須要用到啟動項目后立即執(zhí)行方式的功能,如我們需要去初始化數(shù)據(jù)到 redis 緩存、設置策略工廠,或者啟動后讀取相應的配置等,主要聊聊實現(xiàn)立即執(zhí)行的幾種方法。 這兩者的實現(xiàn)方法一樣,都是去繼承相應的接口然后重寫 run 方法即可,也都是 S

    2024年02月11日
    瀏覽(19)
  • 在Linux系統(tǒng)中執(zhí)行.sh文件的幾種方法

    cd到.sh文件所在的目錄,然后執(zhí)行./xxx.sh 【前提:該./sh文件要有可執(zhí)行的權限,chmod u+x xxx.sh】 在.sh文件路徑下直接使用sh加.sh文件名即可 【是否有可執(zhí)行權限都可以】 注意事項:**用“./”加文件名.sh執(zhí)行時,必須給.sh文件加x執(zhí)行權限 ./home/test/shell/hello.sh,可以這樣運行是

    2024年02月12日
    瀏覽(18)
  • Python: 導入或執(zhí)行python源文件的幾種方法

    目錄 概要 方法1:import 方法2:exec() 方法3:os.system() ????????本文介紹python中導入或執(zhí)行python源文件(通常是從另一個python源文件中)的幾種常用方法。包括import, exec(), os.system()等。 ????????第一種方式是使用import。 ????????比如說有一個文件hello_world.py,內(nèi)容如

    2024年02月15日
    瀏覽(28)
  • Unity讀取Json的幾種方法

    目錄 存入和讀取JSON工具 讀取本地Json文件 1、unity自帶方法 類名:JsonUtility? ? ? ? ? 序列化:ToJson()? ? ? ? ? ? ? ? ? ? 反序列化:FromJson()???????? 用于接收的JSON實體類需要聲明 [Serializable] ?序列化 實體類中的成員變量要是字段而不是屬性{get;set;} 處理數(shù)組的話,外

    2024年01月21日
    瀏覽(20)
  • 實現(xiàn)延遲隊列的幾種方案

    實現(xiàn)延遲隊列的幾種方案

    方案一:基于SpringTask定時掃描數(shù)據(jù)庫 步驟: 把發(fā)布的任務和時間保存到數(shù)據(jù)庫中之后使用定時任務SpringTask來進行每五分鐘執(zhí)行一次 優(yōu)點:可以把任務持久化保存到數(shù)據(jù)庫中,不容易丟失任務 缺點:這種方案發(fā)布的時間可能會有誤差,因為五分鐘才執(zhí)行一次,如果縮短時間

    2024年02月13日
    瀏覽(16)
  • 【圖文詳解】Unity存儲游戲數(shù)據(jù)的幾種方法

    【圖文詳解】Unity存儲游戲數(shù)據(jù)的幾種方法

    在Unity中,常用的數(shù)據(jù)存儲方法包括PlayerPrefs、ScriptableObject、JSON、XML和數(shù)據(jù)庫等。 PlayerPrefs是Unity自帶的一種簡單的鍵值存儲系統(tǒng),適合存儲一些簡單的游戲數(shù)據(jù)。ScriptableObject是一種Unity類,可用于創(chuàng)建可序列化的對象并存儲數(shù)據(jù)。JSON和XML是輕量級的數(shù)據(jù)交換格式,可以通過

    2023年04月08日
    瀏覽(30)
  • Windows Bat實現(xiàn)延時功能的幾種常見方式

    Windows Bat實現(xiàn)延時功能的幾種常見方式

    在 bat 批處理中實現(xiàn)延時功能的幾種常用方式 使用ping命令可以實現(xiàn)延時的效果,命令如下: -n 指定 ping 的次數(shù),每次大概間隔1s, nul 將 ping 過程回顯信息給屏蔽 ping 命令實現(xiàn)的延時,時間精度:大約1s,內(nèi)存占用: ping 命令所占用空間 注意閉坑:ping 從第1次發(fā)出請求到接收

    2024年02月11日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包