官方API與官網(wǎng)下載地址:http://dotween.demigiant.com/documentation.php
下面我們來(lái)看看幾個(gè)方法:
//下面這個(gè)方法表示對(duì)變量myValue做一個(gè)動(dòng)畫(huà) (通過(guò)插值的方式去修改一個(gè)值的變化)
//也就是說(shuō)向量myValue這個(gè)值在兩秒之內(nèi)從Vector3.zero變成new Vector3(10,10,10).
//這里可以應(yīng)用到Transform上拿霉,可以讓一個(gè)游戲?qū)ο蠡蛘遀I在多久之內(nèi)從一個(gè)Position移動(dòng)到另一個(gè)Position的改變咱扣。
public Vector3 myValue=Vector3.zero;
DOTween.To(()=>myValue,x=>myValue=x,new Vector3(10,10,10),2);
UI進(jìn)入屏幕和倒播等動(dòng)畫(huà)
下面我們做一個(gè)實(shí)例來(lái)學(xué)習(xí)其他的使用方法闹伪。我們創(chuàng)建一個(gè)Butten單擊的時(shí)候讓一個(gè)面板從屏幕外進(jìn)入到屏幕內(nèi)。再單擊的時(shí)候回播讓它在返回屏幕外杀怠。
首先我們創(chuàng)建一個(gè)Butten和一個(gè)Image赔退,然后我們?cè)贐utten上添加腳本MyButten证舟。然后我們寫(xiě)入下面代碼
//這個(gè)是任務(wù)面板Plane的RectTransform
public RectTransform panelTransform;
public bool isIn = false;
private void Start()
{
//讓panelTransform從當(dāng)前局部位置 動(dòng)畫(huà)到0,0卵渴,0的位置浪读,動(dòng)畫(huà)進(jìn)入屏幕 時(shí)間為1S.
Tween tween = panelTransform.DOLocalMove(Vector3.zero, 0.3f);
//Tweener對(duì)象保存這個(gè)動(dòng)畫(huà)的信息 每次調(diào)用do類(lèi)型方法都會(huì)創(chuàng)建一個(gè)tweener對(duì)象,這個(gè)對(duì)象是dotween來(lái)管理
//因?yàn)槊看蜠OLocalMove后都會(huì)將其自動(dòng)銷(xiāo)毀互订,所以我們把SetAutoKill自動(dòng)銷(xiāo)毀設(shè)置為false;
tween.SetAutoKill(false);
tween.Pause(); //暫停動(dòng)畫(huà)
//表示當(dāng)前位置的X在一秒移動(dòng)到X為5的位置
//transform.DOMoveX(5, 1);
//加上From()方法表示從目標(biāo)位置X為5的地方在一秒移動(dòng)到當(dāng)前位置
//transform.DOMoveX(5, 1).From();
//下面From默認(rèn)為false,如果為true的話那5就是相對(duì)值痘拆,也就是表示從目標(biāo)位置X為5+(當(dāng)前位置的X值)的地方在一秒移動(dòng)到當(dāng)前位置
//transform.DOMoveX(5, 1).From(true);
}
//點(diǎn)擊Butten的方法
public void OnClick() {
if (isIn == false)
{
//panelTransform.DOPlay();//播放動(dòng)畫(huà)
panelTransform.DOPlayForward();//向前播放動(dòng)畫(huà)
isIn = true;
}
else {
//讓panelTransform動(dòng)畫(huà)進(jìn)離開(kāi)屏幕
panelTransform.DOPlayBackwards();//倒播動(dòng)畫(huà)
isIn = false;
}
}
然后我們將按鈕點(diǎn)擊事件的方法和RectTransform 給其賦值這樣就OK了纺蛆,下面我們看看效果
設(shè)置動(dòng)畫(huà)曲線
下面我們可以看到有很多的曲線運(yùn)動(dòng)方式我們可以先隨便選一個(gè)試試效果看看桥氏,我們就選InElastic試試看吧字支。
里面有很多動(dòng)畫(huà)的曲線可以去控制并且可以控制動(dòng)畫(huà)循環(huán)的次數(shù)堕伪,方法為以下
tween.SetLoops(2);//表示動(dòng)畫(huà)循環(huán)兩次
tween.OnComplete(OnTweenComplete);//表示動(dòng)畫(huà)播放完后執(zhí)行某個(gè)事件方法
public void OnTweenComplete() {
Debug.Log("動(dòng)畫(huà)播放完成");
}
動(dòng)畫(huà)生命周期函數(shù)
OnComplete//當(dāng)動(dòng)畫(huà)完成之后
OnKill//當(dāng)動(dòng)畫(huà)被銷(xiāo)毀時(shí)
OnPlay//當(dāng)動(dòng)畫(huà)播放時(shí)
OnPause//當(dāng)動(dòng)畫(huà)暫停
OnRewind//當(dāng)動(dòng)畫(huà)重置時(shí)
OnStart//當(dāng)動(dòng)畫(huà)第一次播放
OnStepComplete//當(dāng)上一次動(dòng)畫(huà)播放完
OnUpdate//當(dāng)動(dòng)畫(huà)更新時(shí)
對(duì)話框文字動(dòng)畫(huà)與屏幕震動(dòng)效果
private Text text;
private void Start()
{
text = this.GetComponent<Text>();
text.DOText("歡迎來(lái)到幽暗森林蹄梢,歡迎來(lái)到幽暗森林",4);
}
transform.DOShakePosition(1, new Vector3(1, 1, 0));//隨機(jī)震動(dòng) 參數(shù)一表示時(shí)間检号,參數(shù)二表示震動(dòng)強(qiáng)度
顏色與漸變動(dòng)畫(huà)
private Text text;
void Start () {
text = GetComponent<Text>();
//設(shè)置顏色漸變,由黑變紅
text.DOColor(Color.red, 4);
//設(shè)置Alpha透明漸變
text.DOFade(1,2);//參數(shù)一為透明值蛙酪,1為不透明,參數(shù)二為時(shí)間.
}
DoTween動(dòng)畫(huà)組件可視化創(chuàng)建(Do Tween Animation)
Do Tween Path路徑編輯器的使用
官方API與官網(wǎng)下載地址:http://dotween.demigiant.com/documentation.php