文章目录
1、DoTween.To()
效果展示
代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening; //引入命名空间
public class Test01 : MonoBehaviour
{
public Vector3 myValue = new Vector3(1000, 0, 0); //初始位置
public RectTransform taskPanelTransform;
// Start is called before the first frame update
void Start()
{
//对变量做一个动画(通过插值的方式去修改一个值的变化)
DOTween.To(() => myValue, x => myValue = x, new Vector3(0, 0, 0), 3);
}
// Update is called once per frame
void Update()
{
//taskPanelTransform.position = myValue; //修改世界坐标
taskPanelTransform.localPosition = myValue; //修改局部坐标
}
}
2、动画前放和倒放
效果展示
代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening; //引入命名空间
public class Test02 : MonoBehaviour
{
public RectTransform panelTransform;
private bool isIn = false; //是否进入
private void Start()
{
//panelTransform.DOMove(new Vector3(0, 0, 0), 1); //让物体从当前位置动画到(0,0,0)的位置,时间为1秒(修改世界坐标),默认动画播放完成会被销毁
//Tweener对象保存这个动画的信息 每次调用Do类型的方法都会创建一个tweener对象,这个对象是dotween来管理的
Tweener tweener = panelTransform.DOLocalMove(new Vector3(0, 0, 0), 1); //(修改局部坐标)
tweener.SetAutoKill(false); //把autokill 自动销毁设置为false
tweener.Pause(); //暂停动画
}
public void OnButtonClick()
{
if(isIn==false)
{
panelTransform.DOPlayForward(); //前放
isIn = true;
}
else
{
panelTransform.DOPlayBackwards(); //倒放
isIn = false;
}
}
}
3、From Tweens用法
效果展示
代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class Test03 : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
//当前位置1
//默认是3秒内从当前位置1移动到目标位置5
//transform.DOMoveX(5, 3);
//加上From()方法以后表示3秒内从目标位置5移动到当前位置1
//transform.DOMoveX(5, 3).From();
//加上true参数以后表示3秒内从相对目标位置6移动到当前位置1
transform.DOMoveX(5, 3).From(true);
}
}
4、动画属性设置
效果展示
代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class Test04 : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
//当前位置1000
Tweener tweener = transform.DOLocalMoveX(0, 3); //3秒内从当前位置1000移动到目标位置0
tweener.SetEase(Ease.OutBack); //修改动画曲线
tweener.SetLoops(2); //设置动画循环次数
tweener.OnComplete(OnTweenComplete); //当动画播放完成时会调用该事件
}
private void OnTweenComplete()
{
Debug.Log("动画播放完毕!");
}
}
5、文字动画
效果展示
代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
using UnityEngine.UI;
public class Test05 : MonoBehaviour
{
private Text text;
// Start is called before the first frame update
void Start()
{
text = this.GetComponent<Text>();
text.DOText("允许到达目的地的路途有一些坎坷 允许自己偶尔不开心不聪明 也允许偶尔做得不够好 但不会轻易放弃 时间在走 很多事都会过去都会慢慢变好", 10);
text.DOColor(Color.red, 10); //修改文字的颜色
text.DOFade(1, 3); //修改文字的透明度
}
}
6、屏幕震动
效果展示
代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class Test06 : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
//transform.DOShakePosition(1); //摄像机震动1秒
transform.DOShakePosition(1, new Vector3(3, 3, 0)); //改变摄像机的震动幅度
}
}