DoTween(HOTween V2) 教程
http://www.cnblogs.com/zhaoqingqing/p/3961543.html
官方網(wǎng)站:http://dotween.demigiant.com/
下載地址:http://dotween.demigiant.com/download.php
快速開始:http://dotween.demigiant.com/getstarted.php
官方文檔:http://dotween.demigiant.com/documentation.php
?
一、準(zhǔn)備工作
1、下載?DOTween,解壓至Unity的Asset文件夾,如果你使用的Unity版本低于Unity4.3,請刪除所有的 DOTween43文件
2、在你們創(chuàng)建一個新的腳本時,需要在頂部導(dǎo)入命令空間:
using DG.Tweening;3、初始化全局選項(可選)
DOTween.Init(autoKillMode, useSafeMode, logBehaviour); 如果你不這樣做(或在你創(chuàng)建第一個Tween之后)DOTween將自動初始化為默認(rèn)值,但你仍然可以改變它們二、介紹
DOTween可以使用?完全通用的方法,像這樣
你也可以使用?便捷的方法,像這樣
無論選擇那種方式,當(dāng)你創(chuàng)建 tween 都會返回一個Tweener?或一個序列(兩者的差異),如果你需要保存,你可以保存兩者為Tween而無須關(guān)心它們的區(qū)別。
你可以以不同的方式?控制多個tween,你可以使用static的DOTween方法(有過濾的附加選項)……
?
// Rewind all tweens 撤消所有的tween DOTween.Rewind(); // Rewind all tweens with a given id 根據(jù)指定id撤消tween DOTween.Rewind(myId); ? 直接的tween引用 // Rewind a referenced tween 撤消引用的tween myTween.Rewind(); ? 或更多方式 // Rewind all tweens connected to a specific transform 撤消所有的tween到特定的transform transform.DORewind();三、Global或特定設(shè)置
你可以設(shè)置?global settings?將應(yīng)用于所有新創(chuàng)建的補(bǔ)間動畫,或通過?具體設(shè)置?為每一個單獨(dú)的補(bǔ)間動畫。
全局設(shè)置
全局設(shè)置?允許你設(shè)置默認(rèn) autoPlay和autoKill 行為,ease type,global timeScale,以及類似的東西。
具體設(shè)置
具體設(shè)置?是通過鏈分配,他們都開始以“Set”開始(除了Callbacks,是以"On"開始”),所以智能感知幫助你找到他們,這兒有些例子
// Create a transform tween and set its ease, loops and OnComplete callback(創(chuàng)建一個transform的tween,設(shè)置type為ease,循環(huán),OnComplete回調(diào)) transform.DOMove(new Vector3(2,2,2), 2).SetEase(Ease.OutQuint).SetLoops(4).OnComplete(myFunction);// Same as above but using line breaks to make it more readable(同上,但使用換行符,使其更具可讀性) transform.DOMove(new Vector3(2,2,2), 2).SetEase(Ease.OutQuint).SetLoops(4).OnComplete(myFunction);// Same as above but storing the tween and applying settings without chaining(同上,但沒有使用鏈的方式) Tween myTween = transform.DOMove(new Vector3(2,2,2), 2); myTween.SetEase(Ease.OutQuint); myTween.SetLoops(4); myTween.OnComplete(myFunction); ? 此外一類 tween 類型都有 特殊的附加功能,取決取決于值補(bǔ)間的取決于值補(bǔ)間的類型,它可以通過設(shè)置 SetOptions() 只要記住, SetOptions()是特殊的,當(dāng)主要創(chuàng)建補(bǔ)間動畫的方法后它需要立即鏈接: // Same as the previous examples, but force the transform to // snap on integer values (very useful for pixel perfect stuff) //和上面的例子類似,但需要強(qiáng)制transform臨時調(diào)整數(shù)值(對于像素完美是非常有用的) transform.DOMove(new Vector3(2,2,2), 2).SetOptions(true) .SetEase(Ease.OutQuint) .SetLoops(4) .OnComplete(myFunction);你甚至可以Copy 一個tween的設(shè)置到另一個tween?,使用SetAs() :
// Create a tween with some settings and store it as a Tween Tween myTween = transform.DOMove(new Vector3(2,2,2), 2).SetEase(Ease.OutQuint).SetLoops(4).OnComplete(myFunction);// Create another tween and apply the same settings as the previous one(創(chuàng)建另一個tween,并應(yīng)用上一個tween的設(shè)置) material.DOColor(Color.red, 2).SetAs(myTween);(?這兩個tween都會循環(huán)4次,easeType為OutQuint,當(dāng)tween完成時都會調(diào)用myFunction)
四、Tween的Life(生命周期)
?
當(dāng)你創(chuàng)建tween時它會自動播放(除非你設(shè)置了全局的?defaultAutoPlay?行為)直到完成循環(huán)
當(dāng)tween完成后它會自動終止(除非你設(shè)置了做全局的 defaultAutoKill 行為),這意味著你不能再使用它。
如果你們要重復(fù)使用同一個tween,僅僅需要設(shè)置它的 autoKill 為 False(可以通過 global autoKill 設(shè)置所有的tweens 或為你自己的tween 設(shè)置?SetAutoKill(false)?).
如果你的tween的target為null,在tween播放時會報異常,你需要注意或激活?安全模式
五、Cache和tween最大值
如果你有?緩存池?緩存所有的你創(chuàng)建的tween,它們就可以重復(fù)使用,不需要創(chuàng)建新的。
此外也可以避免使用更多的資源,它會限制最大200個Tweeners并且50FPS在同一時間,如果你需要更多,DOTween會自動增加它的大小,當(dāng)然你可以直接設(shè)置?來避免自動調(diào)整可能會發(fā)生卡頓的情況
// Set max Tweeners to 3000 and max Sequences to 200(設(shè)置最大Tweeners為300,最大FPS為200) DOTween.SetTweensCapacity(3000, 200); 在任何時候你想 在tween完成時清除DOTween的cache,你可以調(diào)用 DOTween.Clear(),它會kill所有的tweens并釋放所有的緩存.六、Recycling tween
你不需要手動回收 tween,相反你可以選擇自動?回收所有的?或?回收特定的
不過,在任何時間你都可以 改變?Tweener的 start和end values
總結(jié)
以上是生活随笔為你收集整理的DoTween(HOTween V2) 教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 接下来的第二步
- 下一篇: Python数据结构与算法--数据类型