日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

UGUI_使用DoTween

發(fā)布時(shí)間:2024/9/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UGUI_使用DoTween 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

因?yàn)?/span>NGUI中已經(jīng)有UITween了,可是UGUI中是沒有這樣的Tween的。因?yàn)樵谧鲇螒驎和5臅r(shí)候通常會(huì)使用Time.Scale =0

可是暫停的時(shí)候UI如果需要繼續(xù)有動(dòng)畫怎么辦呢?

DoTween中只需要設(shè)置?? ?tweener.SetUpdate(true); 即可。

意思就是這個(gè)Tween是忽略TimeScale,如果不寫的話?tweener.SetUpdate false。

例子

using?DG.Tweening; //不能少了這個(gè)命名空間。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

????void Start ()

????{

????????//TimeScale = 0

????????Time.timeScale = 0;

? ?

????????Image image = transform.Find("Image").GetComponent<Image>();

????????//調(diào)用DOmove方法來讓圖片移動(dòng)

????????Tweener tweener = image.rectTransform.DOMove(Vector3.zero,1f);

????????//設(shè)置這個(gè)Tween不受Time.scale影響

????????tweener.SetUpdate(true);

????????//設(shè)置移動(dòng)類型

????????tweener.SetEase(Ease.Linear);

????????tweener.onComplete = delegate() {

????????????Debug.Log("移動(dòng)完畢事件");

????????};

????????image.material.DOFade(0,1f).onComplete = delegate() {

????????????Debug.Log("褪色完畢事件");

????????};

????}

Tween的移動(dòng)類型有很多種,比如勻速運(yùn)動(dòng)、加速運(yùn)動(dòng)、減速運(yùn)動(dòng),等等。如果你拿捏不準(zhǔn)你需要用什么移動(dòng)類形式。

http://www.robertpenner.com/easing/easing_demo.html?你可以在這里預(yù)覽一下那種移動(dòng)類型更佳適合你。

代碼中我們?cè)O(shè)置了圖片的移動(dòng) 褪色,因?yàn)橐苿?dòng)的Tween設(shè)置了忽略Time.Scale,所以代碼中Time.Scale =0時(shí),圖片的Tween響應(yīng)了位移操作,然后褪色的Tween卻沒有。

?

部分文檔

?

DoTween UnityUI

Dotween已為新的GUI系統(tǒng)做好準(zhǔn)備,包括CanvasGroup,Graphic,Image,LayoutElement,Outline,RectTransform,ScrollRect,Slider,Text。

利用它你肯定可以定制出強(qiáng)大的動(dòng)畫系統(tǒng)。

Dotween TextMesh Pro/2D Tookit

Dotween同樣為2D Tookit的Tk2dBaseSprite,tk2dSliceSprite等做好準(zhǔn)備

Dotween同樣為TextMeshPro+TextMeshProUGUI做好準(zhǔn)備,包括DOFontSize,DOText,DOFaceFade等

Dotween 路徑動(dòng)畫

dotwwen pro包含路徑動(dòng)畫,路徑可視化編輯,強(qiáng)大的屬性面板

Dotween Pro :https://www.assetstore.unity3d.com/en/#!/content/32416

Dotween Free:https://www.assetstore.unity3d.com/en/#!/content/27676

一、術(shù)語(yǔ)

Tweener

一個(gè)tween控制value和animates

Sequence

一個(gè)特殊的tween,并不是控制value,和其它的tween一起成為一個(gè)動(dòng)畫組

Tween

一個(gè)普通詞,既可以表示? Tweener 也可以表示 序列

Nested tween

一個(gè)tween,包含序列

DoTween前綴

前綴在智能感知里是非常重要的,所以盡可能要記住這些:

DO? 前綴是所有的tween的快捷方式(可以直接操作已知 object,比如transform或material),也是DOTween 類主要的前綴

transform.DOMoveX(100, 1);

transform.DORestart();

DOTween.Play();

Set?? 前綴,所有的tween設(shè)置

myTween.SetLoops(4, LoopType.Yoyo).SetSpeedBased();

On?? 前綴, 所有的tween回調(diào)

myTween.OnStart(myStartFunction).OnComplete(myCompleteFunction);

二、DOTween.Init

當(dāng)你第一次創(chuàng)建 tween,DOTween將會(huì)使用默認(rèn)值自動(dòng)初始化。

如果你喜歡自己初始化(推薦),在創(chuàng)建任何tween之前(創(chuàng)建之后將不會(huì)有任何效果),調(diào)用這些方法一次。

想想看,你可以使用DOTween的 global settting 改變所有的初始化設(shè)置。

或者,你可以 通過鏈?SetCapacity?初始化方法,它可以設(shè)置 Tweeners最大值/FPS的初始容量(在高版本中可以調(diào)用?DOTween.SetTweensCapacity)

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

比如:

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

三、Creating a Tweener

Tweener好似為DOTween工作的一只螞蟻,它采用 屬性/字段對(duì)給定值進(jìn)行動(dòng)畫處理。

截止目前 DOTween可以處理這些類型的值:

float,int,uint,Vector2/3/4,Quaternion,Rect,RectOffset,string

有三種方式創(chuàng)建 Tweener

A.便捷方式

DOTween包括一些已知的unity object,比如 Transform,Rigidbody和Material,你可以直接對(duì)這些object進(jìn)行tween(這也會(huì)自動(dòng)設(shè)置對(duì)象自己為target)比如:

transform.DOMove(new Vector3(2,3,4), 1);

rigidbody.DOMove(new Vector3(2,3,4), 1);

material.DOColor(Color.green, 1);

所有這些快速方式也有From,除了特殊說明,只需在方法名稱后添加From

transform.DOMoveFrom(new Vector3(2,3,4), 1);

rigidbody.DOMoveFrom(new Vector3(2,3,4), 1);

material.DOColorFrom(Color.green, 1);

Camera

DOColor(Color to, float duration)

DOShakePosition(float duration, float strength, int vibrato, float randomness)

DOShakeRotation(float duration, float strength, int vibrato, float randomness)

Light

Material

Rigidbody

Move

SpriteRenderer

詳細(xì)的文檔請(qǐng)參考官方:http://dotween.demigiant.com/documentation.php

Transform

Move

DOMove(Vector3 to, float duration, bool snapping)

DOMoveX/DOMoveY/DOMoveZ(float to, float duration, bool snapping)

DOLocalMove(Vector3 to, float duration, bool snapping)

DOLocalMoveX/DOLocalMoveY/DOLocalMoveZ(float to, float duration, bool snapping)

Rotate

DORotate(Vector3 to, float duration, bool useShortest360Route = true)

DOLocalRotate(Vector3 to, float duration, bool useShortest360Route = true)

DOLocalAxisRotate(Vector3 to, float duration)

Scale

DOScale(Vector3 to, float duration)

DOScaleX/DOScaleY/DOScaleZ(float to, float duration)

Punch – no FROM

DOPunchPosition(Vector3 punch, float duration, int vibrato, float elasticity, bool snapping)

DOPunchRotation(Vector3 punch, float duration, int vibrato, float elasticity)

DOPunchScale(Vector3 punch, float duration, int vibrato, float elasticity)

Shake – no FROM

DOShakePosition(Vector3 punch, float duration, float strength, int vibrato, float randomness, bool snapping)

DOShakeRotation(Vector3 punch, float duration, int vibrato, float elasticity)

DOShakeScale(Vector3 punch, float duration, int vibrato, float elasticity)

WaitFor coroutines

WaitForCompletion()

WaitForElapsedLoops(int elapsedLoops)

WaitForKill()

WaitForPosition(float position)

WaitForStart()

官方英文API

后面大多比較簡(jiǎn)單就不再一一翻譯了,附上官方英文文檔:http://dotween.demigiant.com/documentation.php

?

總結(jié)

以上是生活随笔為你收集整理的UGUI_使用DoTween的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。