方法一:简单方法(UI)
using DG.Tweening;
public class CubeMove : MonoBehaviour {
public Vector3 myValue=new Vector3 (1249,0,0) ;//UI的初始位置
public RectTransform img ;//UIvoid Start () {
//对变量做一个动画
DOTween.To(() => myValue, x => myValue = x, new Vector3(0, 0, 0), 2);
//运动到 (0,0,0) ,时间为2 s
}void Update () {
img.localPosition = myValue;
}
}
方法二:domove方法
using DG.Tweening;
public class IgmMove : MonoBehaviour {
public RectTransform igm;//UI
public void onClick()
{
// igm.DOMove(new Vector3(0, 0, 0), 1);
//从当前位置运动到(0,0,0)的位置,时间为1s(世界坐标)
igm.DOLocalMove(new Vector3(0, 0, 0), 2);
//从当前位置运动到(0,0,0)的位置,时间为1s(自身坐标)
}
}
方法三:动画重播
(一)
using DG.Tweening;
public class IgmMove : MonoBehaviour {
public RectTransform igm;
private bool isTrue = false;
public void onClick()
{
if(isTrue==false )
{
// igm.DOMove(new Vector3(0, 0, 0), 1);
//从当前位置运动到(0,0,0)的位置,时间为1s(世界坐标)
// igm.DOLocalMove(new Vector3(0, 0, 0), 2);//默认动画播放完成会被销毁
//从当前位置运动到(0,0,0)的位置,时间为1s(自身坐标)
//Tweener对象保存这个动画的信息,每次调用do类型的方法都会创建tweener对象,这个对象是dotween来管理
Tweener tweener = igm.DOLocalMove(new Vector3(0, 0, 0), 1);
tweener.SetAutoKill(false);//自动销毁设置false
isTrue = true;
}else
{
//倒播
igm.DOPlayBackwards();
isTrue = false ;
}
}
}
(二)
using DG.Tweening;
public class IgmMove : MonoBehaviour {
public RectTransform igm;
private bool isTrue = false;
void Start()
{
//Tweener对象保存这个动画的信息,每次调用do类型的方法都会创建tweener对象,这个对象是dotween来管理
Tweener tweener = igm.DOLocalMove(new Vector3(0, 0, 0), 1);
tweener.SetAutoKill(false);//自动销毁设置false
tweener.Pause();//动画暂停
//Tweener对象保存这个动画的信息,只创建一次
}
public void onClick()
{
if(isTrue==false )
{
// igm.DOMove(new Vector3(0, 0, 0), 1);
//从当前位置运动到(0,0,0)的位置,时间为1s(世界坐标)
// igm.DOLocalMove(new Vector3(0, 0, 0), 2);//默认动画播放完成会被销毁
//从当前位置运动到(0,0,0)的位置,时间为1s(自身坐标)
// igm.DOPlay();//动画播放一次
igm.DOPlayForward();//动画向前播放
isTrue = true;
}else
{
//倒播
igm.DOPlayBackwards();//动画向后播放
isTrue = false ;
}
}
}
方法四:from
// transform.DOMoveX(5, 2);// //默认从当前位置运动到目标位置(距离,时间)
// transform.DOMoveX(5, 2).From();//默认从目标位置运动到当前位置(距离,时间)
transform.DOMoveX(5, 1).From(true);//true为相对坐标。false绝对坐标。
方法五:动画曲线
private bool isTrue = true;
void Start()
{
Tweener twee = transform.DOLocalMoveY(0, 2);
twee.SetAutoKill(false);
twee.Pause();
twee.SetEase(Ease.InOutBack);//动画曲线
twee.SetLoops(2);//动画播放几次
twee.OnComplete(onTweenComplete); //动画播放完成后执行
}
public void onClick()
{
if (isTrue)
{
transform.DOPlayForward();
isTrue = false;
}
else
{
transform.DOPlayBackwards();
isTrue = true ;
}
}
//动画播放完成后
void onTweenComplete()
{
print("动画播放完成!");
}
同的曲线
方法六:动画生命周期函数
方法七:颜色和透明
public Image ban;
void Start()
{
ban.DOColor(Color.red, 2);//颜色改变
ban.DOFade(0, 2);//透明度改变
}