小功能丨DOTween API介紹
阿新 • • 發佈:2019-01-10
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();
}
}