Unity 動(dòng)畫一:DOTween簡單了解

一、DOTween簡介

image

DOTween是一款針對(duì)Unity的快速高效、類型安全的面向?qū)ο蟮难a(bǔ)間動(dòng)畫引擎,并且對(duì)于C#用戶做出了很多的優(yōu)化。

兼顧速度與效率
DOTween不僅非???,而且非常高效。因?yàn)橐磺卸急痪彺娌⒅赜?,以避免無用的GC分配。

智能感知和類型安全
所有代碼都是完整的XML注釋,并組織起來,以充分利用智能感知。此外,一切都是類型安全的,因?yàn)闆]有使用字符串。

使用方便快捷

DOTween的調(diào)用簡潔直觀,如下所示:

//在1秒內(nèi)將transform移動(dòng)到位置(1,2,3)
transform.DOMove(new Vector3(1,2,3),1);
transform.DOLocalMove(new Vector3(1,2,3),1);

//將transform的Y縮放值在1秒內(nèi)變?yōu)?
transform.DOScaleY(3,1);

//暫停transform的補(bǔ)間
transform.DOPause();

二、DOTween特性

非常準(zhǔn)確

時(shí)間以非常精確的方式計(jì)算。這意味著每1000秒的1000次循環(huán),每1000秒的循環(huán)播放完全一樣長。

邏輯易用的API

API旨在提高效率,直觀性和易用性。

一切皆可動(dòng)畫化

DOTween可以為每個(gè)數(shù)值和一些非數(shù)字值生成動(dòng)畫。甚至可以為字符串設(shè)置動(dòng)畫,并支持富文本。

捕捉,軸約束等選項(xiàng)

選擇關(guān)于如何補(bǔ)償值的其他選項(xiàng),如捕捉(捕捉值到整數(shù))或軸約束。

完全控制

播放,暫停,倒帶,重新啟動(dòng),完成,轉(zhuǎn)到和其他有用的方法來控制你的補(bǔ)間。

分組

將補(bǔ)間合并到序列中以創(chuàng)建復(fù)雜的動(dòng)畫。

可混合的補(bǔ)間

由于功能強(qiáng)大的Doblendable快捷鍵,有些補(bǔ)間可以實(shí)時(shí)相互融合。

路徑

沿著線性和彎曲的路徑動(dòng)畫材料,還可以為您的旅行社定位更多的選擇。

在播放時(shí)更改值和持續(xù)時(shí)間

即使在播放時(shí),也可以隨時(shí)更改補(bǔ)間的開始/結(jié)束值或持續(xù)時(shí)間。

安全模式

激活可選的安全模式,讓DOTween照顧意外的事件,比如補(bǔ)間目標(biāo)在玩耍時(shí)被銷毀。

協(xié)程

使用各種“WaitFor ...”方法在協(xié)同程序中使用,允許您等待補(bǔ)間完成,殺死,啟動(dòng)或使其達(dá)到給定的位置或循環(huán)。

多種旋轉(zhuǎn)模式

旋轉(zhuǎn)補(bǔ)片可以采用最短的路線,完整的路線,或使用本地或世界的軸。

共享方法

這是一個(gè)Tweener還是一個(gè)序列?誰在乎?他們都從Tween繼承,因此您可以以相同的方式存儲(chǔ)和控制它們。

插件

DOTween是建立在可擴(kuò)展架構(gòu)之上的,它允許您創(chuàng)建自己的補(bǔ)間插件作為單獨(dú)的文件。

附加功能

額外的虛擬方法來做一些事情,比如在給定的延遲之后調(diào)用一個(gè)函數(shù)。

所有的基礎(chǔ)

回調(diào),循環(huán),減速(包括AnimationCurves和定制減速功能),SpeedBased和許多其他補(bǔ)間選項(xiàng)。此外,更新類型的選擇:regular,fixed,late,加上選項(xiàng)使其與時(shí)間無關(guān)。

三、DOTween工具面板

image

DOTween的工具面板,可讓您設(shè)置默認(rèn)DOTween設(shè)置,選項(xiàng),檢查更新等。

DOTween檢視窗口

image

如果您在運(yùn)行時(shí)選中了DOTween GameObject,則相應(yīng)的檢視窗口將顯示常用的信息,以及直接打開在線文檔的按鈕,并檢查是否具有最新版本。

DOTween的性能優(yōu)勢(shì)(與其他補(bǔ)間動(dòng)畫引擎比較)

在一個(gè)循環(huán)中處理64000個(gè)通用浮點(diǎn)數(shù):

image

在循環(huán)中處理4000個(gè)transform

image

DOTween Pro

DOTween Pro脫胎于DOTween的免費(fèi)版本,并以其為基礎(chǔ)擴(kuò)展出了新的腳本快捷使用方式。它還包括可視化動(dòng)畫編輯器,可視化路徑編輯器。而且Pro版本能無縫擴(kuò)展2D Toolkit和TextMesh Pro的功能。

image

四、安裝步驟

1、導(dǎo)入DOTween插件

導(dǎo)入新的DOTween更新后,您必須設(shè)置DOTween才能根據(jù)您的Unity版本導(dǎo)入/重新導(dǎo)入其他庫。

要設(shè)置DOTween,請(qǐng)從“Tools / Demigiant”菜單中打開DOTween 工具面板,然后從出現(xiàn)的面板中選擇“Setup DOTween ...”。

image

2、引入DOTween命名空間

請(qǐng)?jiān)谀褂肈OTween的類/腳本中加入如下引用:

using DG.Tweening;

3、初始化(可選)

static DOTween.Init(bool recycleAllByDefault = false, bool useSafeMode = true, LogBehaviour logBehaviour = LogBehaviour.ErrorsOnly)

//示例A:使用DOTween的工具面板中設(shè)置的首選項(xiàng)進(jìn)行初始化

DOTween.Init();

//示例B:使用自定義設(shè)置進(jìn)行初始化,并立即設(shè)置容量

DOTween.Init(true,true,LogBehaviour.Verbose).SetCapacity(200,10);

如果您不調(diào)用(或者在創(chuàng)建第一個(gè)補(bǔ)間)之后,DOTween將使用默認(rèn)設(shè)置自動(dòng)初始化,但是您仍然可以隨時(shí)更改它們。

五、結(jié)語

通過對(duì)DOTween的簡單了解,感覺這個(gè)庫還是蠻強(qiáng)大的,基本上能滿足各種動(dòng)畫的需求,性能也相當(dāng)出色,最關(guān)鍵是它是對(duì)Unity原生API進(jìn)行擴(kuò)展,使用非常便捷。

接下來準(zhǔn)備再通過一章簡單介紹DOTween的用法,敬請(qǐng)期待。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【Android 動(dòng)畫】 動(dòng)畫分類補(bǔ)間動(dòng)畫(Tween動(dòng)畫)幀動(dòng)畫(Frame 動(dòng)畫)屬性動(dòng)畫(Property ...
    Rtia閱讀 6,390評(píng)論 1 38
  • ...
    李昀熹1112閱讀 3,958評(píng)論 0 40
  • Unity編輯器基礎(chǔ) 1.請(qǐng)描述游戲動(dòng)畫有幾種,以及其原理。 主要有關(guān)節(jié)動(dòng)畫、單一網(wǎng)格模型動(dòng)畫(關(guān)鍵幀動(dòng)畫)、骨骼...
    豆錚閱讀 4,949評(píng)論 0 6
  • 我出生在潮汕的小城里,那里比較重男輕女,但我出生的年代和我的家庭并沒有這么濃烈的氣息,所以并沒有因?yàn)槲沂桥⒆佣?..
    解憂雜貨鋪Joyce閱讀 488評(píng)論 0 0
  • 孟姜女哭倒長城 秦始皇時(shí),勞役繁重,青年男女范喜良、孟姜女新婚三天,新郎就被迫出發(fā)修筑長城,不久因饑寒勞...
    高汝凱閱讀 1,107評(píng)論 0 3

友情鏈接更多精彩內(nèi)容