Unity3d dotween

无人久伴 提交于 2021-02-17 10:21:38

位置

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;
};

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!