1. 程式人生 > >小功能丨DOTween API介紹

小功能丨DOTween API介紹

DOTween官網

1、DOTween.To()

將某點在一定時間內移動到某點

using DG.Tweening;

Vector3 myvalue = new Vector3(0, 0, 0);
DOTween.To(() => myvalue, x => myvalue = x, new Vector3(10, 10, 10), 2);
                 要移動的初始值                目標值                時間

2、DOMove()

在1s內將目標物體從當前位置移動到目標位置

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

3、DOMoveX()、DOMoveY()、DOMoveZ()

從當前位置延X/Y/Z方向,移動到目標位置5

transform.DOMoveX(5, 1);

4、From()

從目標位置,移動到當前位置

絕對位置,若當前座標(1,0,0),即從5運動到1
transform.DOMoveX(5, 1).From();
transform.DOMoveX(5, 1).From(false);

相對位置,若當前座標(1,0,0),即從6運動到1(6-1=5,相對位移5)
transform.DOMoveX(5, 1).From(true);

5、Pause()、DOPlay()、DOPlayForward()、DOPlayBackwards()

動畫暫停、動畫播放、動畫向前播放、動畫倒放

//DOTween播放會生成動畫,動畫儲存在Tweener資訊中,預設動畫播放完會被銷燬,要想倒放,必須設為不被銷燬
//tweener也會播放動畫
Tweener tweener= transform.DOLocalMove(new Vector3(1, 1, 1), 1);
tweener.SetAutoKill(false);
//暫停動畫
tweener.Pause();
//播放動畫,只播放一次,再次呼叫不可播放
transform.DOPlay();
//向前播放動畫,可多次播放
transform.DOPlayForward();
//動畫倒放
transform.DOPlayBackwards();

6、SetEase()

設定動畫曲線,即動畫運動方式(類似設定PPT動畫的出現效果)

Tweener tweener = transform.DOLocalMoveX(0, 5);
tweener.SetEase(Ease.InBounce);

7、SetLoops

設定動畫播放次數,下為播放兩次動畫

Tweener tweener = transform.DOLocalMoveX(0, 5);
tweener.SetLoops(2);

8、事件函式

動畫播放完成事件函式、

Tweener tweener = transform.DOLocalMoveX(0, 5);
//動畫播放完成呼叫事件函式
tweener.OnComplete(你的方法);

//動畫銷燬呼叫事件函式
tweener.OnKill(你的方法);

//動畫播放時呼叫事件函式(一直呼叫)
tweener.OnPlay(你的方法);

//動畫暫停時呼叫事件函式
tweener.OnPause(你的方法);

//動畫重置時呼叫事件函式
tweener.OnRewind(你的方法);

//動畫開始播放時呼叫事件函式
tweener.OnStart(你的方法);

//動畫播放時呼叫事件函式(一次)
tweener.OnPlay(你的方法);

9、DOText    文字動畫

若文字框內無文字,在3s內逐字顯示文字。

若有文字,則逐字覆蓋掉原先文字,顯示新文字

GetComponent<Text>().DOText("接下來我們進入第二篇章", 3);

10、DOShakePosition    震動效果

掛載在攝像機上面

//持續時間,其餘預設
transform.DOShakePosition(1);
//持續時間、強度(下為只在X、Y方向上震動)
transform.DOShakePosition(1,new Vector3(3,3,0));

11、DOColor    改變顏色

在2s中將原本顏色變為紅色

GetComponent<Text>().DOColor(Color.red, 2);

12、DOFade    改變透明度

文字透明度會在3s內從0變為1

GetComponent<Text>().DOFade(1, 3);

13、視覺化動畫編輯

該元件在DOTween Pro外掛裡面

可使用程式碼通過控制ID的方式來控制動畫的播放

下載地址:下載

using UnityEngine;
using DG.Tweening;

public class UIController : MonoBehaviour {

    DOTweenAnimation tweenAnimation;

	void Start () {
        tweenAnimation = GetComponent<DOTweenAnimation>();
    }
	
    public void OnClick()
    {
        tweenAnimation.DOPlayBackwards();
    }
}

14、視覺化路徑編輯

該元件在DOTween Pro外掛裡面

下載地址:下載

Shift+Ctrl:新增路徑點

Shift+Alt:刪除路徑點

Duration:時長

Delay:延遲時間

Ease:運動模式

Loops:播放次數,-1為迴圈播放,0為播放一次

Path Type:Linner/Catmull Rom,Linner,線性;Catmull Rom給路徑做圓滑處理

Close Path:將起點與終點連線,圍成一個圈

Local Movement:區域性座標下移動

Orientation:朝向。To Path,遊戲物體朝向路徑運動;Look At Transform;Look At Position

Relative:勾選後,選擇遊戲物體,路徑可整體移動

Show Indexes:是否顯示路徑索引

Handles Type:Free/Full,Full,每個點顯示三座標

Reset Path:刪除所有點,重置路徑

程式碼控制:

該元件自帶控制方法,直接呼叫即可,當然也可在Unity通過Button拖拽方式直接控制

using UnityEngine;
using DG.Tweening;

public class UIController : MonoBehaviour {

    DOTweenPath tweenAnimation;

	void Start () {
        tweenAnimation = GetComponent<DOTweenPath>();
    }
	
    public void OnClick()
    {
        //開始播放
        tweenAnimation.DOPlay();

        //運動開關:點選一次,繼續開始播放,再點選一次,在當前位置暫停
        tweenAnimation.DOTogglePause();

        //重新播放動畫
        tweenAnimation.DORestart();

        //殺死動畫,此後無法再播放動畫
        tweenAnimation.DOKill();
    }
}