Unity3D DOTween動畫插件詳解

框架視圖

效果圖及關(guān)鍵代碼

01-GetStart
using UnityEngine;
using System.Collections;
using DG.Tweening;

public class GetStrart : MonoBehaviour {

    //定義一個(gè)了公開的位置變量
    public Vector3 myValue = new Vector3(0,0,0);


    //定義一個(gè)公開的持有的引用
    //public Transform cubeTransform;


    //把任務(wù)欄的圖片還原回來
    public RectTransform taskPanelTransform;

    void Start () {
    
        //對變量進(jìn)行一個(gè)動畫(通過lambda表達(dá)式方式去修改一個(gè)值的變化浦徊,差值運(yùn)算)
        //系統(tǒng)自帶的靜態(tài)方法;
       // DOTween.To(()=>myValue, x=>myValue=x, new Vector3(10,10,10), 2);//參數(shù)1:當(dāng)前的值 參數(shù)2:定義變化后的值 參數(shù)3:最終變化后的值 參數(shù)4:變化的時(shí)間

        
        //還原動畫
        DOTween.To(()=>myValue,x=>myValue=x,new Vector3(0,0,0),2);


    }
    
    
    void Update () {
    
        //每一幀的位置的值都等于myValue的值气破;
       // cubeTransform.position = myValue;


        //逐漸返回原來位置
       // taskPanelTransform.position = myValue;//這是世界坐標(biāo)
       //本地坐標(biāo)
        taskPanelTransform.localPosition = myValue;

    }
}

02-ShortCutsWay
using UnityEngine;
using System.Collections;
using DG.Tweening;//引用動畫命名空間

public class MyButton : MonoBehaviour {

    //聲明一個(gè)公開的持有的引用
    public RectTransform panelTransform;


    //定義一個(gè)開關(guān) 用來判斷進(jìn)出
    private bool isIn=false;
    void Start() {
       
        Tweener tweener = panelTransform.DOLocalMove(new Vector3(0,0,0),0.5f);
        tweener.SetAutoKill(false);
       
        //一開始不用播放圃庭,先暫停禁舷;
        tweener.Pause();
       
    }

    public void OnClick() { 
    
        //移動時(shí)間
       // panelTransform.DOMove(new Vector3(0,0,0),2);//參數(shù)1:目標(biāo)位置 參數(shù)2:2秒時(shí)間违霞;(修改的是世界坐標(biāo))
       // panelTransform.DOLocalMove(new Vector3(0,0,0),0.5f);//本地坐標(biāo)
        if (isIn==false)
        {
           //Tweener tweener= panelTransform.DOLocalMove(new Vector3(0,0,0),0.5f);//動畫播放完畢自動銷毀 要實(shí)行倒放之前先不能銷毀動畫
            //Tweener對象是用來保存這個(gè)動畫信息的亩码,每次調(diào)用Do都會創(chuàng)建一個(gè)tweener對象震蒋,這個(gè)對象是用Dotween來管理的;
           //tweener.SetAutoKill(false);//把這個(gè)屬性設(shè)置為false后就不能自動銷毀躲庄;
            //這樣會使動畫每次都創(chuàng)建實(shí)例查剖,消耗大量性能 所以把上述方法放在start方法中;
            //實(shí)行動畫前放噪窘;
            panelTransform.DOPlayForward();//動畫前放
            isIn = true;
        }
        else
        {
            panelTransform.DOPlayBackwards();//動畫倒放笋庄;
            isIn = false;

        }



    }

}

03-FormTween
using UnityEngine;
using System.Collections;
using DG.Tweening;//插入命名動畫空間

public class MyCube : MonoBehaviour {

    
    void Start () {

        //將cube進(jìn)行X軸移動
        //gameObject.transform.DOMoveX(5,1);//參數(shù)1:目標(biāo)位置 參數(shù)2:動畫時(shí)間

        //from 動畫 表示行方向
       // transform.DOMoveX(5,1).From();//表示從目標(biāo)位置移回來當(dāng)前位置;上面的意思是TO倔监,這個(gè)意思是from直砂;
        transform.DOMoveX(5, 1).From(true);//表示相對位置移動回來 假如其實(shí)目標(biāo)是1,表示從6移動到1的位置 沒有參數(shù)表示5移動到1的位置浩习;

    }
}
04-SpecificSettings
using UnityEngine;
using System.Collections;
using DG.Tweening;

public class MyPanel : MonoBehaviour {

    void Start () {
        //設(shè)置動畫
       Tweener tweener= transform.DOLocalMoveX(0,5);
        //動畫播放一般是先塊后慢静暂,設(shè)置動畫播放的曲線
       tweener.SetEase(Ease.InBack);//枚舉類型,先后退在返回  動畫曲線
       tweener.SetLoops(2);//設(shè)置循環(huán)的次數(shù) 默認(rèn)是0 可以設(shè)置2
       tweener.OnComplete(OnTweenComplete);//動畫播放完成之后執(zhí)行的方法 參數(shù)1:方法名稱谱秽; 動畫函數(shù)
    }
    
    
    void Update () {
    
    }
    void OnTweenComplete() {

        Debug.Log("動畫播放完成了洽蛀!");
    }
}

05-Text Tween
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using DG.Tweening;

public class MyPanel2 : MonoBehaviour {

    //不要自動播放 自己控制播放

    //定義一個(gè)持有的引用
    private DOTweenAnimation tweenAnimation;

    //定義一個(gè)標(biāo)志位 用來時(shí)候顯示摹迷;
    private bool isShow=false;

    void Start () {
    
        //獲取組件
        tweenAnimation=GetComponent<DOTweenAnimation>();

        //播放動畫
       // tweenAnimation.DOPlay();

    }
    
    void Update () {
    
    }

    //通過按鈕來控制動畫播放;
    public void OnClick(){

        if (isShow == true)
        {
            //如果是顯示 就倒放郊供;
            tweenAnimation.DOPlayBackwards();
            isShow = false;
        }
        else { 
        
            //如果沒顯示 就前放
            tweenAnimation.DOPlayForward();
            isShow = true;
        }
    }

}

06-Shake Screen
using UnityEngine;
using System.Collections;
using DG.Tweening;
public class MyShake : MonoBehaviour {


    void Start () {

        //通過transform組件獲取相應(yīng)的dg屬性
       // transform.DOShakePosition(1);//參數(shù)1:表示震動時(shí)間 默認(rèn)表示前后左右上下震動一米峡碉、

       transform.DOShakePosition(1,new Vector3(6,6,0));//參數(shù)2:表示左右 上下震動 z軸不變;
    
    }
    

    void Update () {
    
    }
}

07-TextColorTween
public class MyText : MonoBehaviour {

    
    //定義一個(gè)text獲取相應(yīng)的組件
    private Text text;

    void Start () {

        //獲取相應(yīng)組件
        text=this.GetComponent<Text>();

        //顯示文字的特效動畫驮审;
        text.DOText("接下來鲫寄,我們進(jìn)去游戲的第二篇章!",3);//參數(shù)1:表示顯示的文字 參數(shù)2:顯示的時(shí)間 3s
        //如果有舊文字將會別替換疯淫;
    
    }
    
    // Update is called once per frame
    void Update () {
    
    }
}
08-DoTweenAnimation
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using DG.Tweening;

public class TextColorTween : MonoBehaviour {

    //定義一個(gè)持有的引用
    private Text text;

    void Start () {
        //獲取相應(yīng)組件
        text = GetComponent<Text>();
        //改變動畫顏色地来;
     text.DOColor(Color.red,3);//參數(shù)1:目標(biāo)顏色 參數(shù)2:改變時(shí)間
      
        //改變文字的透明度 就是改變 阿爾法值
        text.DOFade(1,3);//參數(shù)1:表示從0 變到1,參數(shù)2:表示變化的時(shí)間峡竣;前提是把透明度改為零靠抑;
       
    }
09-TweenPath
9.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市适掰,隨后出現(xiàn)的幾起案子颂碧,更是在濱河造成了極大的恐慌,老刑警劉巖类浪,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件载城,死亡現(xiàn)場離奇詭異,居然都是意外死亡费就,警方通過查閱死者的電腦和手機(jī)诉瓦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來力细,“玉大人睬澡,你說我怎么就攤上這事∶呗欤” “怎么了煞聪?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逝慧。 經(jīng)常有香客問我昔脯,道長,這世上最難降的妖魔是什么笛臣? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任云稚,我火速辦了婚禮,結(jié)果婚禮上沈堡,老公的妹妹穿的比我還像新娘静陈。我一直安慰自己,他們只是感情好踱蛀,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布窿给。 她就那樣靜靜地躺著贵白,像睡著了一般。 火紅的嫁衣襯著肌膚如雪崩泡。 梳的紋絲不亂的頭發(fā)上禁荒,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機(jī)與錄音角撞,去河邊找鬼呛伴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛谒所,可吹牛的內(nèi)容都是我干的热康。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼劣领,長吁一口氣:“原來是場噩夢啊……” “哼姐军!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起尖淘,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤奕锌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后村生,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惊暴,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年趁桃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辽话。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡卫病,死狀恐怖油啤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蟀苛,我是刑警寧澤村砂,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站屹逛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏汛骂。R本人自食惡果不足惜罕模,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帘瞭。 院中可真熱鬧淑掌,春花似錦、人聲如沸蝶念。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至担敌,卻和暖如春摔敛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背全封。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工马昙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人刹悴。 一個(gè)月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓行楞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親土匀。 傳聞我的和親對象是個(gè)殘疾皇子子房,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容