DoTween詳細使用教程

2022-07-03 04:03:13 字數 3110 閱讀 2623

dotween 預設配置加上鏈式呼叫api風格,配上lambda匿名函式呼叫,非常簡單清晰好用。dotween實現了通用的緩動演算法,能夠配置出各種想要的動畫效果。另外,佇列延遲**函式,也能完成各種非同步延遲執行功能。

dotween 為各種unity的物件做了函式繫結,方便呼叫。比如transform, color, text, material等都可以直接呼叫dotween的動畫api。我們先從通用的動畫函式來了解。

[csharp]view plain

copy

public static tweener to(dogettergetter, dosettersetter, t endvalue, float duration)  

// 建立乙個 tweener 從當前座標0.5秒移動到座標vector3(100, 100, 100)位置   

tween tween = dotween.to  

(  ()  => transform.position,   

(x) => transform.position = x,   

new vector3(100, 100, 00),   

0.5f  

);  

引數t可以是各種數值型別,比如int,float,long ,vector等。getter, setter就是兩個**函式,可以使用匿名函式傳入。getter 用來獲取當前需要設定的值,setter用來設定當前數值,引數x是有dotween計算過後的數值。endvalue就是最終的數值,duration是使用的時間。和標準的tween動畫是一樣的。

getter, setter可以是多條語句的函式,就需要用{}括起來。理解起來就是,dotween利用傳入的兩個函式,來獲取初始值和每幀設定值,這樣就能驅使數值的變化反映到屬性上。這裡返回tween物件,是為了鏈式呼叫,dotween幾乎所有的函式呼叫都會返回tween物件,能夠繼續呼叫其他函式。

[csharp]view plain

copy

dotween.to  

(  ()  => audio.volume,  

(v) => audio.volume = v,  

1.0f,  

10  

)  .oncomplete  

(  () =>  

)  .setease(ease.outsine);  

比如,這裡我們鏈式呼叫了完成時候的**函式,和設定緩動演算法。緩動物件可以列舉所有通用的緩動演算法。

另外,還有乙個專門對顏色處理的通用函式。

[csharp]view plain

copy

image stepimage = transoform.getcomponent();  

dotween.toalpha  

(  ()  => stepimage.color,  

(c) => stepimage.color = c,  

0,   

0.5f  

);  

這裡和to的函式呼叫相似,只是這裡僅僅會變化alpha數值來改實現變透明度的動畫。

接下來就是一些列繫結transform, color, text, material的使用。

[csharp]view plain

copy

// 0.5秒內區域性座標變化到10,10,10  

transform.dolocalmove(new vector3(10, 10, 10), 0.5f);  

// 0.5秒內x世界座標變換到5  

transform.domovex(5, 0.5f);  

// 0.5f秒內世界座標相對當前,運動到5,5,5, 使用outcubic緩動演算法  

transform.doblendablemoveby(new vector3(5, 5, 5), 0.5f).setease(ease.outcubic)  

// text 2秒內漸變透明到0  

text.dofade(0, 2f).setease(ease.outsine);  

// 0.3秒內材質屬性fade變化到5,使用緩動演算法  

material.dofloat(5, "_fade", 0.3f).setease(ease.outsine);  

// 5秒內彈跳3次,彈到10,10,10位置  

transform.dojump(new vector3(10, 10, 10), 3, 5f);  

總結起來就是:

最後,我們來了解一下非常好用強大的動畫佇列sequence的使用。

[csharp]view plain

copy

dotween.sequence();  

返回乙個sequence物件,以後sequence物件都是返回sequence物件,依然可以像tween一樣鏈式呼叫。重點介紹幾個函式的意義。

insert(time, tweener) 可以再佇列插入高一二tweener,第乙個引數時間,就是在這個佇列執行多少時間後,執行插入的tweener。

然後,看個列子,佇列可以執行動畫,執行**函式,按照我們需要的時間和次序進行,非常方便符合直覺使用。

[csharp]view plain

copy

dotween.sequence()  

(  go.transform.doblendablemoveby(new vector3(0, move, 0), 0.5f).setease(ease.outcubic)  

)  (  

go.transform.doblendablemoveby(new vector3(0, move, 0), 1.5f).setease(ease.outsine)  

)  .insert  

(  0.8f,  

text.dofade(0, 2f).setease(ease.outsine)  

)  (  

() =>  

);  

dotween.sequence()  

(  () =>  

)  .play();  

Dotween外掛程式的使用

一 移動方法!1 前往世界座標某個位置 3秒到達 transform.domove new vector3 4,3,0 3 剛才我做了乙個測試,就是不管你cube的位置在 是誰的子物體,我設的世界座標就是你還是乙個父物體的時候會到達的位置。2 本地座標上移動 transform.dolocalmov...

Git 使用詳細教程

學習git的使用,寫的很詳細 git 總結 將本地專案上傳到碼雲 將本地的專案上傳到碼雲 1 碼雲上建立乙個專案 testgit 名字隨你 2 本地建立乙個資料夾d testgit,然後使用git bash 3 cd 到本地資料夾中d testgit,4 使用 git init 命令 初始化乙個gi...

Git Bash使用詳細教程

詳細命令教程上方位址進入檢視 一 git是什麼?git是目前世界上最先進的分布式版本控制系統。二 svn與git的最主要的區別?svn是集中式版本控制系統,版本庫是集中放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從 伺服器 得到最新的版本,然後幹活,幹完後,需要把自己做完的活推送到 ...