位置
1. 移動到指定位置
obj.transform.DOMove(new Vector3(0, 3, 0), 2f); a. 單方向可以用DOMoveX、DOMoveY、DOMoveZ b. 本地坐標系版本:DOLocalMove
(Scale、Rotate有類似方法)
2. 相對移動
//X軸方向向前移動100(如果.SetRelative(true)拿掉則表示移動到x坐標為100的位置) obj.transform.DOLocalMoveX(100, 1f).SetRelative(true); obj.transform.DOLocalMove(new Vector3(100, 100), 2f).SetRelative(true)
//還可以使用方法
DOBlendableLocalMoveBy
DOBlendableMoveBy
(Scale、Rotate有類似方法)
透明度
obj.DOFade(0, 1f)//注意不是transform
顏色
obj.DOColor(Color.gray, 1f)
緩動動畫
//緩動動畫 效果demo:http://robertpenner.com/easing/easing_demo.html obj.transform.DOLocalMove(new Vector3(100, 100), 2f).SetEase(Ease.InOutBack);
循環
//SetLoops第一個參數是循環次數,-1表示無限 obj.DOFade(0, 1f).SetLoops(3, LoopType.Yoyo); //勻速旋轉實現 image.transform.DOLocalRotate(new Vector3(0, 0, 30), 0.5f).SetLoops(-1, LoopType.Incremental).SetEase(Ease.Linear);
回調
var result = image.DOFade(0, 2f).SetLoops(3, LoopType.Yoyo);
result.OnComplete(() => Debug.Log("OnComplete")).OnKill(() => Debug.Log("OnKill")).OnStepComplete(() => Debug.Log("OnStepComplete")).OnRewind(() => Debug.Log("OnRewind")).OnStart(() => Debug.Log("OnStart"));
振動
obj.transform.DOShakePosition(1, 10); obj.transform.DOShakeRotation(1); obj.transform.DOShakeScale(1);
From
//從定義定義動作將到達的位置移動到當前位置,From帶true,表示DOLocalMoveX(100, 1f)使用相對位置,所以說從x+100的位置移動到當前位置。如果不帶true,則表示從x==100的位置移動到當前位置。 image.transform.DOLocalMoveX(100, 1f).From(true)
DoText
text.DOText("這是一個DoText測試", 2f);
Sequence
//按順序執行 Sequence seq = DOTween.Sequence(); seq.Append(image.transform.DOLocalMove(new Vector3(100, 100), 2f)); seq.AppendInterval(1f); seq.Append(image.DOColor(Color.blue, 2f)); //同步執行Insert的第一個參數表示延時 seq.Insert(0, image.transform.DOLocalMove(new Vector3(100, 100), 3f)).Insert(1f, image.DOColor(Color.blue, 1f));
To
Vector3 pos = new Vector3(); var res = DOTween.To(() => Vector3.zero, v => pos = v, new Vector3(100, 100, 1), 2);//參數分別為getter、setter、endValue、duration res.onUpdate = () => { image.transform.localPosition = pos; //image.transform.position = pos; };