久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

        手機站
        千鋒教育

        千鋒學習站 | 隨時隨地免費學

        千鋒教育

        掃一掃進入千鋒手機站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學習站小程序
        隨時隨地免費學習課程

        當前位置:首頁  >  技術(shù)干貨  > Unity中DOTween的用法解析

        Unity中DOTween的用法解析

        來源:千鋒教育
        發(fā)布人:syq
        時間: 2022-06-08 11:58:00 1654660680

          /*

          * DOTween真的比iTween好很多:

          * 1.編寫方面更加人性化

          * 2.效率高很多

        DOTween的用法

          * DoTween插件的基本概念以及簡介:

          * 1.DoTween實現(xiàn)的是通用的緩動算法,用于給Unity中的游戲?qū)ο筇砑觿幼鲃赢嫛?/p>

          * 2.DoTween的API風格一律采用鏈式調(diào)用,再配以Lambda匿名函數(shù)的調(diào)用,可以配置出各種各樣想要的豐富的動畫效果。

          * 3.DoTween還可以實現(xiàn)隊列延遲回調(diào)函數(shù),也能完成各種異步延遲執(zhí)行的功能。

          * 4.DoTween為了方便開發(fā)者使用,對各種Unity的腳本對象進行了函數(shù)綁定,例如:

          * Transform, Color, Text, Material等都可以直接調(diào)用DoTween的動畫函數(shù)

          *

          * 綁定的快捷方式動畫函數(shù)API

          * 函數(shù)名稱解釋:

          * 都是以DO開頭,帶Local的就是局部坐標系,不帶的指的是基于世界坐標系

          * 所有函數(shù)調(diào)用都是鏈式調(diào)用

          * 可以自己設(shè)置緩動算法的類型,也可以用一些已經(jīng)配置好的緩動算法,比如跳躍Jump

          * 這類函數(shù)的API調(diào)用更符合常用函數(shù)的使用習慣,move就是移動,scale就是縮放,rotation就是旋轉(zhuǎn),color就是顏色,數(shù)值的變化就是float

          * 更多的功能用法直接在程序中自動補全就可以理解意思了

          *

          * 1.以DO開頭的方法:就是補間動畫的方法。例如:transform.DOMoveX(100,1)

          * 2.以Set開頭的方法:設(shè)置補間動畫的一些屬性。例如:myTween.SetLoops(4, LoopType.Yoyo)

          * 3.以O(shè)n開頭的方法:補間動畫的回調(diào)方法。例如:myTween.OnStart(myStartFunction)

          好了,正式開始!首先去Unity應(yīng)用商城下載DOTween,導(dǎo)入工程。

          */

          using System.Collections;

          using UnityEngine;

          using DG.Tweening;

          using UnityEngine.UI;

          public class CubeAnimator : MonoBehaviour

          {

            Camera _camera;

            Material material;

            public Text text;

            Tweener _tweener;

            void Start()

            {

          /*DOTween初始化與全局設(shè)置:

          當你第一次創(chuàng)建一個Tween時,DOTween就會自動初始化(只初始化一次)。

          當然,也可以使用DOTween.Init方法進行自定義,但要在第一次創(chuàng)建一個Tween前。所有創(chuàng)建的Tween都會受DOTween.Init方法的影響。

          *recycleAllByDefault :如果為true,則當Tween完成時就會被回收,放到一個池中;否則就會被destroy

          *useSafeMode :效率會稍微降低,但更安全

          *logBehaviour :默認值為只打印錯誤信息

          */

          DOTween.Init(false, true, LogBehaviour.ErrorsOnly);

          _camera = Camera.main;

          material = GetComponent().material;

          //一、Unity常用組件拓展方法

          //(1) Transform拓展方法

          TestTransformFuncAnim();

          //(2) _camera拓展方法

          TestCameraFuncAnim();

          //(3) Material拓展方法

          TestMaterialFuncAnim();

          //(4) Text拓展方法

          TestTextFuncAnim();

          //二、Dotween常用方法

          //Sequence動畫序列函數(shù)API

          /*

          * 基本解釋說明:

          * 動畫序列其實就是包含了一組Tweener并且操作其他Tweener的一個工具

          * 動畫序列并不一定要一個接著一個的播放和執(zhí)行

          * 動畫序列之間可以重疊和重復(fù)

          * 你可以以任何你所期望的形式混合夾雜著去使用它們

          * DOTween.Sequence()會創(chuàng)建一個動畫序列對象,以后所有的Sequence函數(shù)都會返回這個Sequence對象,也就是說動畫序列也可以鏈式調(diào)用

          * Append(tweener) 可以在隊尾追加一個tweener,會按照順序依次執(zhí)行這個tweener序列,一個tweener完成后執(zhí)行下一個。

          * Insert(time, tweener) 可以在隊列中插入一個tweener,第1個參數(shù)代表插入的時間點,第2個參數(shù)代表在此時間點插入的動畫。

          * AppendInterval(time) 可以在隊尾追加一個時間間隔功能函數(shù),在隊列執(zhí)行的過程中,停頓一個時間,然后繼續(xù)執(zhí)行。

          * AppendCallback(func) 可以在隊尾追加一個匿名函數(shù),在隊列中執(zhí)行一個回調(diào)。

          */

          //(5) Sequence 隊列

          TestSequenceAnim();

          //(6) Tweener的設(shè)置

          SetterTweener();

          //7.關(guān)于Ease緩動函數(shù)的說明

          /*

          * 基本概念說明:

          * 緩動函數(shù)是指動畫效果在執(zhí)行時的速度,使其看起來更加真實。

          * Ease.InSine 表示正弦加速動作

          * Ease.OutSine 表示正弦減速動作

          * Ease.InOutSine 表示正弦加速減速動作

          * 每個效果都分3種緩動方式:

          * (1).easeIn:從0開始加速的緩動

          * (2).easeOut:減速到0的緩動

          * (3).easeInOut:前半段從0開始加速,后半段減速到0的緩動

          * 其中Linear是線性緩動,也叫無緩動效果,沒有上述說明中的效果。

          */

          //(7) 運動曲線的設(shè)置

          TestEaseFuncAnima();

          //(8) 動畫回調(diào)事件

          TestCallBack();

          //(9) 動畫控制方法

          TestAnimatorController();

          //(10) 獲取數(shù)據(jù)方法

          GetTweenerDat();

          //(11) 協(xié)程方法

          StartCoroutine(Wait());

          }

          //(1) Transform拓展方法

          private void TestTransformFuncAnim()

          {

          //Position

          //1)改變世界坐標

          //移動方法,第一個參數(shù)是要移動到的目標點,不是移動這個向量的距離

          transform.DOMove(new Vector3(1, 1, 1), 2);

          //只控制x軸上的移動,其他兩個方向同理

          transform.DOMoveX(1, 2);

          //2)改變局部坐標

          transform.DOLocalMove(new Vector3(1, 1, 1), 2);

          transform.DOLocalMoveX(1, 2);

          //Rotation

          //1)世界旋轉(zhuǎn)

          //旋轉(zhuǎn)到給定的值,改變的是歐拉角

          transform.DORotate(new Vector3(0, 90, 0), 2);

          //旋轉(zhuǎn)到給定的值,改變的是四元數(shù)

          transform.DORotateQuaternion(new Quaternion(0.1f, 0.1f, 0.1f, 0.1f), 2);

          //2)局部旋轉(zhuǎn)

          // 旋轉(zhuǎn)到給定的值,改變的是歐拉角

          transform.DOLocalRotate(new Vector3(0, 90, 0), 2);

          // 旋轉(zhuǎn)到給定的值,改變的是四元數(shù)

          transform.DOLocalRotateQuaternion(new Quaternion(0.1f, 0.1f, 0.1f, 0.1f), 2);

          // 在給定時間內(nèi),平滑的讓自身的z軸正方向指向目標點

          transform.DOLookAt(new Vector3(0, 0, 0), 2);

          // Scale

          //同上面一樣,這里改變物體的縮放到目標值

          transform.DOScale(new Vector3(2, 2, 2), 2);

          //其他兩個軸向同理

          transform.DOScaleX(3, 2);

          //Punch

          /*

          第一個參數(shù) punch:表示方向及強度

          第二個參數(shù) duration:表示動畫持續(xù)時間

          第三個參數(shù) vibrato:震動次數(shù)

          第四個參數(shù) elascity: 這個值是0到1的

          當為0時,就是在起始點到目標點之間運動

          不為0時,會把你賦的值乘上一個參數(shù),作為你運動方向反方向的點,物體在這個點和目標點之間運動

          */

          transform.DOPunchPosition(new Vector3(0, 1, 0), 2, 2, 0.1f);

          transform.DOPunchRotation(new Vector3(0, 90, 0), 2, 2, 0.1f);

          transform.DOPunchScale(new Vector3(2, 2, 2), 2, 2, 0.1f);

          //Shake

          /*

          * 參數(shù):持續(xù)時間,力量,震動,隨機性,淡出

          力量:實際就是震動的幅度,可以理解成相機施加的力的大小 使用Vector3可以選擇每個軸向不同的強度

          震動:震動次數(shù)

          隨機性:改變震動方向的隨機值(大?。?~180)

          淡出:就是運動最后是否緩慢移動回到原本位置

          */

          transform.DOShakePosition(1, 5, 10, 50, true);

          transform.DOShakeRotation(3);

          transform.DOShakeScale(3);

          //帶Blend名稱的方法,允許混合動畫

          //原本同時執(zhí)行兩個Move方法,只會執(zhí)行最新的一個動畫命令

          //例如:

          transform.DOMove(Vector3.one, 2);

          transform.DOMove(Vector3.one * 2, 2);

          //結(jié)果是物體運動到了(2,2,2)坐標上

          //DOBlendableMoveBy方法有兩個特點

          //1)允許多個同時執(zhí)行

          //例如:

          transform.DOBlendableMoveBy(new Vector3(1, 1, 1), 1);

          transform.DOBlendableMoveBy(new Vector3(-1, 0, 0), 1);

          //假設(shè)起始為(0,0,0),最后動畫停止時的坐標就是(0,1,1)

          //2)它是增量動畫

          transform.DOBlendableMoveBy(new Vector3(1, 1, 1), 1);

          //假設(shè)其實點為(1,1,1),最后動畫停止時的坐標就是(2,2,2)

          //它的參數(shù)不是目標點,而是要移動的量

          /*以下三個函數(shù)同理

          transform.DOBlendableRotateBy

          transform.DOBlendableScaleBy()

          transform.DOBlendablePunchRotation()

          */

         }

          //(2) Camera拓展方法

          private void TestCameraFuncAnim()

          {

          //1)調(diào)整屏幕視角的寬高比 第一個參數(shù)是寬高的比值

          _camera.DOAspect(0.6f, 2);

          //2)改變相機background參數(shù)的顏色

          _camera.DOColor(Color.blue, 2);

          //3)改變相機近切面的值

          _camera.DONearClipPlane(200, 2);

          //4)改變相機遠切面的值

          _camera.DOFarClipPlane(2000, 2);

          //5)改變相機FOV的值

          _camera.DOFieldOfView(30, 2);

          //6)改變相機正交大小

          _camera.DOOrthoSize(10, 2);

          //7)按照屏幕像素計算的顯示范圍

          _camera.DOPixelRect(new Rect(0f, 0f, 600f, 500f), 2);

          //8)按照屏幕百分比計算的顯示范圍

          _camera.DORect(new Rect(0.5f, 0.5f, 0.5f, 0.5f), 2);

          /*

          9)相機震動

          相機震動效果 參數(shù):持續(xù)時間,力量,震動,隨機性,淡出

          力量:實際就是震動的幅度,可以理解成相機施加的力的大小 使用Vector3可以選擇每個軸向不同的強度

          震動:震動次數(shù)

          隨機性:改變震動方向的隨機值(大?。?~180)

          淡出:就是運動最后是否緩慢移動回到原本位置

          */

          _camera.DOShakePosition(1, 10, 10, 50, false);

         }

          //(3) Material拓展方法

          private void TestMaterialFuncAnim()

          {

          // 1)改變顏色

          material.DOColor(Color.black, 2);

          // 2)按照shader的屬性名,修改顏色

          material.DOColor(Color.clear, "_Color", 2);

          // 3)修改alpha值

          material.DOFade(0, 2);

          // 4)顏色漸變

          // Gradient是unity的漸變編輯器(下面有漸變編輯器的圖)

          // material.DOGradientColor(Gradient, "_Color", 3);

          // 5)改變材質(zhì)offset的值

          material.DOOffset(new Vector2(1, 1), 2);

          // 6)改變提供的shader屬性的名稱對應(yīng)的Vector4值

          material.DOVector(new Vector4(0, 0, 0, 1), "_Color", 3);

          // 7)顏色混合

          // 跟位置混合動畫同理,可以同時執(zhí)行而不干擾,產(chǎn)生混合在一起的顏色

          material.DOBlendableColor(Color.red, "_Color", 3);

         }

          //(4) Text拓展方法

          private void TestTextFuncAnim()

          {

          //頭三個都是常規(guī)方法,不多介紹了

          text.DOColor(Color.black, 2);

          text.DOFade(0, 2);

          text.DOBlendableColor(Color.black, 2);

          //打字機效果

          //是把第一個參數(shù)傳入的內(nèi)容按照時間,一個字一個字的輸入到文本框中

          text.DOText("context", 2);

          }

          //(5) Sequence 隊列

          private void TestSequenceAnim()

          {

          Sequence quence = DOTween.Sequence();

          //1)添加動畫到隊列中

          quence.Append(transform.DOMove(Vector3.one, 2));

          //2)添加時間間隔

          quence.AppendInterval(1);

          //3)按時間點插入動畫

          //第一個參數(shù)為時間,此方法把動畫插入到規(guī)定的時間點

          // 以這句話為例,它把DORotate動畫添加到此隊列的0秒時執(zhí)行,雖然它不是最先添加進隊列的

          quence.Insert(0, transform.DORotate(new Vector3(0, 90, 0), 1));

          //4)加入當前動畫

          // Join會加入和讓動畫與當前正在執(zhí)行的動畫一起執(zhí)行

          //如下兩行代碼,DOMove會和DOScale一起執(zhí)行

          quence.Append(transform.DOScale(new Vector3(2, 2, 2), 2));

          quence.Join(transform.DOMove(Vector3.zero, 2));

          //5)預(yù)添加動畫

          // 預(yù)添加 會直接添加動畫到Append的前面,也就是最開始的時候

          //quence.Prepend(transform.DOScale(Vector3.one * 0.5f, 1));

          //這里需要特別說一下預(yù)添加的執(zhí)行順序問題

          //它這里也采取了隊列的性質(zhì),不過,預(yù)添加與原本的的隊列相比是一個反向隊列

          //例如:

          // Sequence quence = DOTween.Sequence();

          //quence.Append(transform.DOMove(Vector3.one, 2));

          //quence.Prepend(transform.DOMove(-Vector3.one * 2, 2));

          //quence.PrependInterval(1);

          //執(zhí)行順序是 PrependInterval----Prepend---- - Append

          //就是最后添加的會在隊列的最頂端

          //6)預(yù)添加時間間隔

          quence.PrependInterval(1);

          // 回調(diào)函數(shù)

          // 1)預(yù)添加回調(diào)

          quence.PrependCallback(

          () => { Destroy(gameObject); }

         );

          // 2)在規(guī)定的時間點加入回調(diào)

          quence.InsertCallback(1,

          () => { Destroy(gameObject); }

         );

          //3)添加回調(diào)

          quence.AppendCallback(

          ()=>{ Destroy(gameObject); }

         );

        }

          //(6) Tweener的設(shè)置

          private void SetterTweener()

          {

          TweenParams para = new TweenParams();

          // 1)設(shè)置動畫循環(huán)

          // 第一個參數(shù)是循環(huán)次數(shù) - 1代表無限循環(huán)

          // 第二個參數(shù)是循環(huán)方式

          // Restart 重新開始

          // Yoyo 從起始點運動到目標點,再從目標點運動回來,這樣循環(huán)

          //Incremental 一直向著運動方向運動

          para.SetLoops(-1, LoopType.Yoyo);

          //2)設(shè)置參數(shù)

          transform.DOMove(Vector3.one, 2).SetAs(para);

          //3)設(shè)置自動殺死動畫

          transform.DOMove(Vector3.one, 1).SetAutoKill(true);

          //4)from補間

          // 例如;

          transform.DOMove(Vector3.one, 2).From(true);

          //From參數(shù) isRelative(相對的):

          //為true,傳入的就是偏移量,即當前坐標 + 傳入值 = 目標值

          //為falese,傳入的就是目標值,即傳入值 = 目標值

          //5)設(shè)置動畫延時

          transform.DOMove(Vector3.one, 2).SetDelay(1);

          //6)設(shè)置動畫運動以速度為基準 例如:

          transform.DOMove(Vector3.one, 1).SetSpeedBased();

          //使用SetSpeedBased時,移動方式就變成以速度為基準

          //原本表示持續(xù)時間的第二個參數(shù),就變成表示速度的參數(shù),每秒移動的單位數(shù)

          //7)設(shè)置動畫ID

          transform.DOMove(Vector3.one, 2).SetId("Id");

          //8)設(shè)置是否可回收

          // 為true的話,動畫播放完會被回收,緩存下來,不然播完就直接銷毀

          transform.DOMove(Vector3.one, 2).SetRecyclable(true);

          //9)設(shè)置動畫為增量運動

          //例如:

          transform.DOMove(Vector3.one, 2).SetRelative(true);

          //SetRelative參數(shù) isRelative(相對的):

          //為true,傳入的就是偏移量,即當前坐標 + 傳入值 = 目標值

          //為falese,傳入的就是目標值,即傳入值 = 目標值

          //10)設(shè)置動畫的幀函數(shù)

          //例如:

          transform.DOMove(Vector3.one, 2).SetUpdate(UpdateType.Normal, true);

          //第一個參數(shù) UpdateType :選擇使用的幀函數(shù)

          //UpdateType.Normal:更新每一幀中更新要求。

          //UpdateType.Late:在LateUpdate調(diào)用期間更新每一幀。

          //UpdateType.Fixed:使用FixedUpdate調(diào)用進行更新。

          //UpdateType.Manual:通過手動DOTween.ManualUpdate調(diào)用進行更新。

          //第二個參數(shù):為TRUE,則補間將忽略Unity的Time.timeScale

          }

          //(7) 運動曲線的設(shè)置

          private void TestEaseFuncAnima()

          {

          //關(guān)于Ease緩動函數(shù)的說明

          /*

          * 基本概念說明:

          * 緩動函數(shù)是指動畫效果在執(zhí)行時的速度,使其看起來更加真實。

          * Ease.InSine 表示正弦加速動作

          * Ease.OutSine 表示正弦減速動作

          * Ease.InOutSine 表示正弦加速減速動作

          * 每個效果都分3種緩動方式:

          * (1).easeIn:從0開始加速的緩動

          * (2).easeOut:減速到0的緩動

          * (3).easeInOut:前半段從0開始加速,后半段減速到0的緩動

          * 其中Linear是線性緩動,也叫無緩動效果,沒有上述說明中的效果。

          */

          //線性緩動,勻速運動

          //transform.DOMove(new Vector3(0, 5, 0), 2).SetRelative().SetLoops(-1, LoopType.Yoyo).SetEase(Ease.Linear);

          //先快后慢正弦運動

          transform.DOMove(new Vector3(0, 5, 0), 2).SetRelative().SetLoops(-1, LoopType.Yoyo).SetEase(Ease.InOutSine);

          }

          //(8) 動畫回調(diào)事件

          private void TestCallBack()

          {

          //1)動畫完成回調(diào)

          transform.DOMove(Vector3.one, 2).OnComplete(() => { });

          //2)動畫被殺死時回調(diào)

          transform.DOMove(Vector3.one, 2).OnKill(() => { });

          //3)動畫播放時回調(diào),暫停后重新播放也會調(diào)用

          transform.DOMove(Vector3.one, 3).OnPlay(() => { });

          //4)動畫暫停時回調(diào)

          transform.DOMove(Vector3.one, 2).OnPause(() => { });

          //5)動畫回退時回調(diào)

          // 以下情況會被調(diào)用

          //使用DORestart重新播放時

          //使用Rewind倒播動畫完成時

          //使用DOFlip翻轉(zhuǎn)動畫完成時

          //使用DOPlayBackwards反向播放動畫完成時

          transform.DOMove(Vector3.one, 2).OnRewind(() => { });

          //6)只在第一次播放動畫時調(diào)用,在play之前調(diào)用

          transform.DOMove(Vector3.one, 2).OnStart(() => { });

          //7)完成單個循環(huán)周期時觸發(fā)

          transform.DOMove(Vector3.one, 2).OnStepComplete(() => { });

          //8)幀回調(diào)

          transform.DOMove(Vector3.one, 2).OnUpdate(() => { });

          //9)在路徑動畫時,改變目標點時的回調(diào),參數(shù)為當前目標點的下標

          transform.DOMove(Vector3.one, 2).OnWaypointChange((value) => { });

          }

          //(9) 動畫控制方法

          private void TestAnimatorController()

          {

          //1)播放

          transform.DOPlay();

          //2)暫停

          transform.DOPause();

          // 3)重播

          transform.DORestart();

          // 4)倒播,此方法會直接退回起始點

          transform.DORewind();

          // 5)平滑倒播,此方法會按照之前的運動方式從當前位置退回起始點

          transform.DOSmoothRewind();

          // 6)殺死動畫

          transform.DOKill();

          // 7)翻轉(zhuǎn)補間的方向

          transform.DOFlip();

          // 8)跳轉(zhuǎn)時間點

          // 第一個參數(shù)跳轉(zhuǎn)的時間點,第二個參數(shù)是跳轉(zhuǎn)后是否播放動畫

          transform.DOGoto(1.5f, true);

          // 9)反向播放動畫

          // 反向播放動畫,在動畫播放到一半時執(zhí)行,會退回起始點,在一開始執(zhí)行看不到效果是因為,物體本身就在起始點

          transform.DOPlayBackwards();

          // 10)正向播放動畫

          // 正向播放動畫

          transform.DOPlayForward();

          // 11)TogglePause

          // 當暫停時,執(zhí)行就繼續(xù)播放,播放時,執(zhí)行就暫停

          transform.DOTogglePause();

         }

          private void GetTweenerDat()

          {

          // 一、類方法

          //1)返回所有暫停的動畫,沒有則返回null

          DOTween.PausedTweens();

          //2)返回所有真正播放的動畫,沒有則返回null

          DOTween.PlayingTweens();

          //3)獲取給定ID的數(shù)組

          //例如:

          DOTween.TweensById("id", true);

          //返回滿足條件的動畫數(shù)組

          //第一個參數(shù)是動畫的ID

          //第二個參數(shù)是是否只收集正在播放的動畫

          //4)返回給定對象的數(shù)組

          //例如:

          DOTween.TweensByTarget(transform, true);

          //返回滿足條件的動畫數(shù)組

          //第一個參數(shù)是播放動畫的對象

          //例如:transform.DOMove(Vector3.one, 2); 第一個參數(shù)就傳入transform

          // material.DOColor(Color.White, 2); 第一個參數(shù)就傳入材質(zhì)對象material

          //第二個參數(shù)是是否只收集正在播放的動畫

          //5)收集傳入的對象是否有動畫在活動

          //例如:

          DOTween.IsTweening(transform);

          //第一個參數(shù)為檢測的對象

          //第二個參數(shù)為是否檢測動畫在播放狀態(tài)

          //為true時,給定對象在播放狀態(tài)時 返回true

          //為false時,只檢測給定對象是否有動畫(在pause狀態(tài)時也算)有則返回true

          // 6)正在播放的動畫的總數(shù),目前處于延遲播放狀態(tài)的動畫也算

          DOTween.TotalPlayingTweens();

          // 二、實例方法

          _tweener = transform.DOMove(Vector3.one, 2);

          //1)表示動畫執(zhí)行時間的屬性,可讀可寫

          _tweener.fullPosition = 1;

          // 2)表示動畫執(zhí)行完的次數(shù)

          _tweener.CompletedLoops();

          // 3)獲取動畫的延遲時間

          _tweener.Delay();

          // 4)獲取動畫的持續(xù)時間

          // 參數(shù)為true 表示計算循環(huán)的時間,無限循環(huán)為Infinity

          _tweener.Duration(false);

          //5)動畫已播放的時間

          // 參數(shù)為true 表示計算循環(huán)的時間

          _tweener.Elapsed();

          //6)返回動畫進度的百分比

          // 起始點為0 目標點為1 當yoyo循環(huán)模式下,值會從0變到1再從1變到0

          _tweener.ElapsedDirectionalPercentage();

          //7)返回動畫區(qū)間已用的百分比

          //單次循環(huán)的數(shù)值為0到1

          //參數(shù)為 是否包含循環(huán) 為true時 返回值是循環(huán)總區(qū)間的已用百分比 若為無限循環(huán) 返回值為0

          _tweener.ElapsedPercentage(true);

          //8)動畫是否在活動

          _tweener.IsActive();

          // 9)是否是反向動畫

          _tweener.IsBackwards();

          //10)動畫是否完成

          _tweener.IsComplete();

          //11)是否以初始化

          _tweener.IsInitialized();

          //12)是否正在播放

          _tweener.IsPlaying();

          //13)返回循環(huán)次數(shù), 無限循環(huán)為Infinity

          _tweener.Loops();

          }

          //協(xié)程方法

          private IEnumerator Wait()

          {

          _tweener = transform.DOMove(Vector3.one, 2);

          // 1)等待動畫執(zhí)行完

          yield return _tweener.WaitForCompletion();

          //2)等待指定的循環(huán)次數(shù)

          //參數(shù)為執(zhí)行次數(shù),等待傳入的循環(huán)次數(shù)后,繼續(xù)執(zhí)行

          //若是傳入的次數(shù)大于動畫的循環(huán)次數(shù) 則在動畫結(jié)束時繼續(xù)執(zhí)行

          yield return _tweener.WaitForElapsedLoops(2);

          //3)等待動畫被殺死

          yield return _tweener.WaitForKill();

          //4)等待動畫執(zhí)行指定時間

          //參數(shù)為時間,動畫執(zhí)行傳入的時間之后或動畫執(zhí)行完畢,繼續(xù)執(zhí)行

          yield return _tweener.WaitForPosition(0.5f);

          //5)等待動畫回退

          // 以下情況會繼續(xù)執(zhí)行函數(shù)

          //使用DORestart重新播放時

          //使用Rewind倒播動畫完成時

          //使用DOFlip翻轉(zhuǎn)動畫完成時

          //使用DOPlayBackwards反向播放動畫完成時

          yield return _tweener.WaitForRewind();

          // 6)等待Start執(zhí)行后繼續(xù)執(zhí)行

          yield return _tweener.WaitForStart();

          }

         }

         更多關(guān)于ITUnity培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學管理及學員服務(wù),助力更多學員實現(xiàn)高薪夢想。

        tags:
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
        免費領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學 138****2860 剛剛成功領(lǐng)取
        王同學 131****2015 剛剛成功領(lǐng)取
        張同學 133****4652 剛剛成功領(lǐng)取
        李同學 135****8607 剛剛成功領(lǐng)取
        楊同學 132****5667 剛剛成功領(lǐng)取
        岳同學 134****6652 剛剛成功領(lǐng)取
        梁同學 157****2950 剛剛成功領(lǐng)取
        劉同學 189****1015 剛剛成功領(lǐng)取
        張同學 155****4678 剛剛成功領(lǐng)取
        鄒同學 139****2907 剛剛成功領(lǐng)取
        董同學 138****2867 剛剛成功領(lǐng)取
        周同學 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        能不能幫我打開抖音小店店鋪呢怎么弄

        抖音小店是近年來非?;鸨囊粋€網(wǎng)絡(luò)業(yè)務(wù),也是提供了很多商業(yè)機會的平臺。對于一個創(chuàng)業(yè)者而言,開設(shè)抖音小店是一個不錯的選擇。但是,許多小店...詳情>>

        2023-10-08 15:01:21
        藍v抖音小店怎么開通店鋪

        藍v抖音小店是一個非常熱門的電商平臺,它可以讓賣家在抖音上開設(shè)自己的店鋪,從而出售自己的商品。隨著抖音的不斷發(fā)展壯大,越來越多的賣家希...詳情>>

        2023-10-08 14:51:53
        抖音小店怎么更改類目名稱

        抖音小店是現(xiàn)在非?;馃岬囊环N網(wǎng)店形態(tài),許多小生意也從中獲得了收益。但是隨著經(jīng)營時間的增長,小店也需要對自己的類目名稱進行更改,因為這可...詳情>>

        2023-10-08 14:46:50
        抖音小店怎么合作賣貨

        抖音小店作為一種新型的電商形式,近年來在國內(nèi)市場上逐漸火熱起來,成為了許多年輕人賺取收入的途徑之一。因為抖音作為當前最流行的短視頻平臺...詳情>>

        2023-10-08 14:35:49
        抖音小店運營和天貓區(qū)別是什么呢

        隨著社交媒體的廣泛應(yīng)用,抖音小店開始走進人們的生活,成為越來越多人的購物選擇之一。而天貓作為國內(nèi)最具影響力的電商平臺之一,是許多電商從...詳情>>

        2023-10-08 14:23:10
        郓城县| 常山县| 桓台县| 大城县| 江门市| 康保县| 白水县| 丹寨县| 三江| 余干县| 罗定市| 班玛县| 西畴县| 韶关市| 阿拉善左旗| 饶阳县| 永嘉县| 焦作市| 咸丰县| 石阡县| 丰原市| 通化县| 济阳县| 岳池县| 康平县| 溧阳市| 布拖县| 神池县| 黄石市| 兴仁县| 辽阳市| 阆中市| 工布江达县| 洛川县| 龙口市| 临清市| 丁青县| 双柏县| 嘉祥县| 云林县| 陆良县|