研究了一下DoTween插件,简单记录一下学习心得。
首先下载安装DoTween
1.通过Dotween来实现物体的移动。
首先有一种比较复杂的方法。
在新脚本中,要先加上using DG.Tweening;才能调用DoTween函数
public Vector3 myValue = new Vector3(0, 0, 0);//定义一个带有三维向量的函数
public RectTransform testtransform;挂载需要移动的物体
void Start () {
DOTween.To(() => myValue, x => myValue = x, new Vector3(0, 0, 0), 2);//赋给物体新的坐标0,0,0
}
void Update () {
testtransform.localPosition = myValue; //让物体的相对坐标等于这个坐标
}
实现了物体的移动,但是比较麻烦
2.第二种办法 通过点击按钮,实现物体的来回移动
分别添加物体和button 在button上添加新的脚本
public RectTransform panelTransform; 定义Image的移动 所以用到ReactTransform
public bool isIn=false;.//定义一个bool函数来判断物体是进还是出。
void Awake(){
Tweener tweener = panelTransform.DOLocalMove(new Vector3(0,0,0),1);// 使物体移动到0,0,0的位置
tweener.SetAutoKill(false);//动画结束时不清除动画,默认是清除的。
tweener.Pause();//动画暂停,等点击按钮的时候再执行
}
void Onclick()//挂载到Button的click上
{
if (isIn=false)
{
panelTransform.DOPlayForward(); //动画向前执行
isIn=true;
}else
{
panelTransform.DOPlayBackwards();//动画倒放
isIn=false;
}
}
******因为我们需要让动画执行以后不被消除,所以用Tweener定义一个函数来接受动画的值,并调用SetAutoKill来让动画不被消除。
但是不能将动画放到Onclick中,因为在Onclick中每点击一次按钮就会产生一个动画,内存会越来越大,所以我们用一个函数
调用一次动画,并让他暂停,在点击的时候再决定是正放还是倒放。