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

unity 等待事件之協(xié)程和Invoke

這篇具有很好參考價值的文章主要介紹了unity 等待事件之協(xié)程和Invoke。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔


前言

提示:這里可以添加本文要記錄的大概內(nèi)容:

協(xié)程的用法 和 Invoke 的等待事件使用


提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、Invoke用法

//methodName:方法名稱
//time:等待時間
Invoke(string methodName, float time);

//methodName:方法名稱
//time:等待時間
//repeatRate:每次重復(fù)執(zhí)行之間的時間間隔
InvokeRepeating(string methodName, float time, float repeatRate);

//用法
 void Start()
 {
 //等待2秒后執(zhí)行
     Invoke("OnInvoke",2f);
 //首次等待2秒后執(zhí)行,然后5秒后 再次執(zhí)行
  InvokeRepeating("OnInvoke",2f,5);
 }
 public void OnInvoke()
 {
     
 }

二、協(xié)程的用法

1.yiele return 介紹

 #region yiele return 介紹
 /*
  *yield return null; // 下一幀再執(zhí)行后續(xù)代碼(通常用于循環(huán)語句中)
  *yield return 0; //下一幀再執(zhí)行后續(xù)代碼
  *yield return 6;//(任意數(shù)字) 下一幀再執(zhí)行后續(xù)代碼
  *yield break; //直接結(jié)束該協(xié)程的后續(xù)操作
  *yield return asyncOperation;//等異步操作結(jié)束后再執(zhí)行后續(xù)代碼
  *yield return StartCoroution(某個協(xié)程);//等待某個協(xié)程執(zhí)行完畢后再執(zhí)行后續(xù)代碼
  *yield return WWW();//等待WWW操作完成后再執(zhí)行后續(xù)代碼
  *yield return new WaitForEndOfFrame();//等待幀結(jié)束,等待直到所有的攝像機和GUI被渲染完成后,在該幀顯示在屏幕之前執(zhí)行
  *yield return new WaitForSeconds(0.3f);//等待0.3秒,一段指定的時間延遲之后繼續(xù)執(zhí)行,在所有的Update函數(shù)完成調(diào)用的那一幀之后(這里的時間會受到Time.timeScale的影響);
  *yield return new WaitForSecondsRealtime(0.3f);//等待0.3秒,一段指定的時間延遲之后繼續(xù)執(zhí)行,在所有的Update函數(shù)完成調(diào)用的那一幀之后(這里的時間不受到Time.timeScale的影響);
  *yield return WaitForFixedUpdate();//等待下一次FixedUpdate開始時再執(zhí)行后續(xù)代碼
  *yield return new WaitUntil()//將協(xié)同執(zhí)行直到 當輸入的參數(shù)(或者委托)為true的時候....如:yield return new WaitUntil(() => frame >= 10);
  *yield return new WaitWhile()//將協(xié)同執(zhí)行直到 當輸入的參數(shù)(或者委托)為false的時候.... 如:yield return new WaitWhile(() => frame < 10);
  */
 #endregion

2.協(xié)程的使用

代碼如下(示例):

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;

public class NewBehaviourScript : MonoBehaviour
{
    // Start is called before the first frame update
    public  bool bo;
    int NumIndex;
    

    void Start()
    {
       
         NumIndex = this.transform.childCount;

        //等待幾秒執(zhí)行
      //  WaitForSeconds();

        //持續(xù)等待 條件達成  再執(zhí)行
        if (NumIndex>0)
        {
           // StartCoroutine(PlayFingerClickTask02());
        }

       // Invoke("OnInvoke",2f);

        InvokeRepeating("OnInvoke", 2f, 5);
    }
    /// <summary>
    /// 方法一
    /// </summary>
    /// <returns></returns>
    IEnumerator WaitForSeconds()
    {
        //等待3秒(這里的時間會受到Time.timeScale的影響);
        yield return new WaitForSeconds(3);
        Debug.Log("距離程序啟動已經(jīng)過了3s");
    }
 
    /// <summary>
    /// 方法二  持續(xù)等待條件為true后執(zhí)行(強烈推薦)
    /// </summary>
    /// <returns></returns>
    IEnumerator PlayFingerClickTask02()
    {
        Debug.Log("等待");
        //等待區(qū)


        yield return new WaitUntil(() => bo);
        bo = false;
        NumIndex -= 1;
        Debug.Log("完成了");
        if (NumIndex > 0)
        {
            StartCoroutine(PlayFingerClickTask02());
        }
    }

    #region yiele return 介紹
    /*
     *yield return null; // 下一幀再執(zhí)行后續(xù)代碼(通常用于循環(huán)語句中)
     *yield return 0; //下一幀再執(zhí)行后續(xù)代碼
     *yield return 6;//(任意數(shù)字) 下一幀再執(zhí)行后續(xù)代碼
     *yield break; //直接結(jié)束該協(xié)程的后續(xù)操作
     *yield return asyncOperation;//等異步操作結(jié)束后再執(zhí)行后續(xù)代碼
     *yield return StartCoroution(某個協(xié)程);//等待某個協(xié)程執(zhí)行完畢后再執(zhí)行后續(xù)代碼
     *yield return WWW();//等待WWW操作完成后再執(zhí)行后續(xù)代碼
     *yield return new WaitForEndOfFrame();//等待幀結(jié)束,等待直到所有的攝像機和GUI被渲染完成后,在該幀顯示在屏幕之前執(zhí)行
     *yield return new WaitForSeconds(0.3f);//等待0.3秒,一段指定的時間延遲之后繼續(xù)執(zhí)行,在所有的Update函數(shù)完成調(diào)用的那一幀之后(這里的時間會受到Time.timeScale的影響);
     *yield return new WaitForSecondsRealtime(0.3f);//等待0.3秒,一段指定的時間延遲之后繼續(xù)執(zhí)行,在所有的Update函數(shù)完成調(diào)用的那一幀之后(這里的時間不受到Time.timeScale的影響);
     *yield return WaitForFixedUpdate();//等待下一次FixedUpdate開始時再執(zhí)行后續(xù)代碼
     *yield return new WaitUntil()//將協(xié)同執(zhí)行直到 當輸入的參數(shù)(或者委托)為true的時候....如:yield return new WaitUntil(() => frame >= 10);
     *yield return new WaitWhile()//將協(xié)同執(zhí)行直到 當輸入的參數(shù)(或者委托)為false的時候.... 如:yield return new WaitWhile(() => frame < 10);
     */
    #endregion





    /// <summary>
    /// 方法三
    /// </summary>
    public void OnInvoke()
    {
        Debug.Log("1111111");
    }


}
 


總結(jié)

好記性不如爛筆頭!文章來源地址http://www.zghlxwxcb.cn/news/detail-849834.html

到了這里,關(guān)于unity 等待事件之協(xié)程和Invoke的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Android kotlin實戰(zhàn)之協(xié)程suspend詳解與使用

    Android kotlin實戰(zhàn)之協(xié)程suspend詳解與使用

    ????????Kotlin 是一門僅在標準庫中提供最基本底層 API 以便各種其他庫能夠利用協(xié)程的語言。與許多其他具有類似功能的語言不同, async ?與? await ?在 Kotlin 中并不是,甚至都不是標準庫的一部分。此外,Kotlin 的? 掛起函數(shù) ?概念為異步操作提供了比 future 與 pro

    2024年02月03日
    瀏覽(23)
  • Linux的進程,協(xié)程和線程

    Linux的進程、協(xié)程和線程是計算機科學(xué)中重要的概念,它們在操作系統(tǒng)和并發(fā)編程中發(fā)揮著關(guān)鍵的作用。讓我們逐個詳解這些概念,并討論它們之間的關(guān)系。 進程是操作系統(tǒng)中的一個執(zhí)行單元,它包含了程序執(zhí)行所需的所有資源,如內(nèi)存空間、文件描述符、寄存器等。 進程是

    2024年01月23日
    瀏覽(20)
  • go的協(xié)程和管道運用案例

    2024年01月19日
    瀏覽(24)
  • 多線程、協(xié)程和多進程并發(fā)編程

    37.1 如何通俗理解線程和進程? 進程:進程就是正在執(zhí)?的程序。 線程:是程序執(zhí)?的?條路徑, ?個進程中可以包含多條線程。 通俗理解:例如你打開抖?,就是打開?個進程,在抖???和朋友聊天就是開啟了?條線程。 再舉?個例?: 在某?堂打飯的時候,此?堂安

    2024年02月02日
    瀏覽(32)
  • 淺談Lua協(xié)程和函數(shù)的尾調(diào)用

    淺談Lua協(xié)程和函數(shù)的尾調(diào)用

    雖然不經(jīng)常用到協(xié)程,但是也不能談虎色變。同時,在有些場景,協(xié)程會起到一種不可比擬的作用。所以,了解它,對于一些功能,也會有獨特的思路和想法。 概念 關(guān)于進程和線程的概念就不多說。 那么從多線程的角度來看,協(xié)程和線程有點類似:擁有自己的棧,局部變量

    2024年02月10日
    瀏覽(16)
  • 使用C語言構(gòu)建一個獨立棧協(xié)程和共享棧協(xié)程的任務(wù)調(diào)度系統(tǒng)

    使用了標準庫頭文件 setjmp.h 中的 setjmp 和 longjmp 兩個函數(shù),構(gòu)建了一個簡單的查詢式協(xié)作多任務(wù)系統(tǒng),支持 獨立棧 和 共享棧 兩種任務(wù)。 其中涉及到獲取和設(shè)置棧的地址操作,因此還需要根據(jù)不同平臺提供獲取和設(shè)置棧的地址操作(一般是匯編語言,因為涉及到寄存器) 該

    2024年02月19日
    瀏覽(25)
  • 使用C++20協(xié)程和io_uring優(yōu)雅地實現(xiàn)異步IO

    距離2020年已經(jīng)過去很久了,各大編譯器對于C++20各項標準的支持也日趨完善,無棧協(xié)程也是其中之一,所以我就嘗試著拿協(xié)程與 io_uring 實現(xiàn)了一下proactor模式,這篇文章用來記錄一下我的設(shè)計和想法。除此之外,我們能在網(wǎng)絡(luò)上找到許多優(yōu)秀的C++20協(xié)程的教程以及許多優(yōu)秀的

    2024年03月27日
    瀏覽(22)
  • Unity 協(xié)程 Unity Task UniTask

    Unity 協(xié)程 Unity Task UniTask

    使用 StartCoroutine 和 IEnumerator yield return null 暫停執(zhí)行并隨后在下一幀恢復(fù) yield return new WaitForSeconds(1f); 延遲1秒 waitfor系列有好幾個 WaitForSeconds 和 WaitForSecondsRealtime 的區(qū)別 使用縮放時間將協(xié)程執(zhí)行暫停指定的秒數(shù)。 實際暫停時間等于給定時間除以 Time.timeScale。如果要使用未縮放

    2024年02月08日
    瀏覽(46)
  • 【unity知識點】Unity 協(xié)程Coroutine

    【unity知識點】Unity 協(xié)程Coroutine

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

    2024年02月01日
    瀏覽(20)
  • Unity減少等待快速進入運行

    Unity減少等待快速進入運行

    我們平時播放時一旦修改了c#的腳本總要加載進行等待,網(wǎng)上也缺乏如何設(shè)置,以及為什么?這樣做可以達到這樣的效果。 ------如何設(shè)置?【默認并不會開啟】 Edit-Project Settings-Editor-Enter Player Mode Options ? ? ?這樣就設(shè)置完了 ----原理解釋: 通過這樣就減少了我們測試播放等待

    2024年02月13日
    瀏覽(14)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包