天天看點

DOTween文檔

前言

DOTween現在還處于 alpha,是以還有一些缺失的功能(如路徑插件,附加回調和其它的tween選項),這個文檔在不久的将來可能會更新。

DoTween:0.8.2.00

官方文檔:http://dotween.demigiant.com/documentation.php

更新于2016-06

更新于:2016-06-25

不知不覺此文過去2年了,DoTween新版本已到:1.1.310

版本記錄:http://dotween.demigiant.com/download.php 點選 Old versions and Changelog 檢視版本曆史

DoTween UnityUI

Dotween已為新的GUI系統做好準備,包括CanvasGroup,Graphic,Image,LayoutElement,Outline,RectTransform,ScrollRect,Slider,Text。

利用它你肯定可以定制出強大的動畫系統。

Dotween TextMesh Pro/2D Tookit

Dotween同樣為2D Tookit的Tk2dBaseSprite,tk2dSliceSprite等做好準備

Dotween同樣為TextMeshPro+TextMeshProUGUI做好準備,包括DOFontSize,DOText,DOFaceFade等

Dotween 路徑動畫

dotwwen pro包含路徑動畫,路徑可視化編輯,強大的屬性面闆

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

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

一、術語

Tweener

一個tween控制value和animates

Sequence

一個特殊的tween,并不是控制value,和其它的tween一起成為一個動畫組

Tween

一個普通詞,既可以表示  Tweener 也可以表示 序列

Nested tween

一個tween,包含序列

DoTween字首

字首在智能感覺裡是非常重要的,是以盡可能要記住這些:

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

transform.DOMoveX(100, 1);
transform.DORestart();
DOTween.Play();      

Set   字首,所有的tween設定

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

On   字首, 所有的tween回調

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

二、DOTween.Init

當你第一次建立 tween,DOTween将會使用預設值自動初始化。

如果你喜歡自己初始化(推薦),在建立任何tween之前(建立之後将不會有任何效果),調用這些方法一次。

想想看,你可以使用DOTween的 global settting 改變所有的初始化設定。

或者,你可以 通過鍊 SetCapacity 初始化方法,它可以設定 Tweeners最大值/FPS的初始容量(在高版本中可以調用 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工作的一隻螞蟻,它采用 屬性/字段對給定值進行動畫處理。

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

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

有三種方式建立 Tweener

A.便捷方式

DOTween包括一些已知的unity object,比如 Transform,Rigidbody和Material,你可以直接對這些object進行tween(這也會自動設定對象自己為target)比如:

transform.DOMove(new Vector3(2,3,4), 1);
rigidbody.DOMove(new Vector3(2,3,4), 1);
material.DOColor(Color.green, 1);      
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

Transform

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

繼續閱讀