平常我们编辑动画的时候要用到Animator来控制动画播放,每一个动画都是一个Clip 都要用代码来控制播放 那样太过繁琐了
所以用DoTween来做一些比较简单的动画是比较好的选择
DoTween的使用
1.对一个值做动画 其实就是对一个值做差值运算
private Vector3 myValue;
对一个值做修改:
void Start()
{
DoTween.To(()=>myValue,x=>myValue=x,newvector3(10,10,10)(目标位置),2(时间));
}
然后在Update里面将物体的位置与这个值保持一致 即可修改位置
上面的代码是lambda表达式 不懂的自行查阅
2.以第一种方式制作动画太过复杂 介绍第二种简单的方式
Transform.DoMove(new vector3(目标位置),int()时间)//让GameObject的物体从当前位置到目标位置 相对世界坐标
Transform.DoLocalMove(new vector3(目标位置),int()时间)//让GameObject的物体从当前位置到目标位置 相对局部坐标
gameObject.DoPlayBackwards();//倒放动画
3.在以上方式中动画创建完毕都是自动播放的 然后自动销毁的 那么我们怎么用代码来控制播放呢
其实在我们使用DoXXX方法的时候 系统自动为我们创建了一个动画 我们可以用一个Tweener类 来持有这个对象
那么我们可以再Start方法里面创建动画 然后将动画暂停Tweener.Pause() 然后将自动销毁设置为false Tweener.SetAutoKill(false) 当我们要播放这个动画 就调用DoPlay() DOPlayForward()//向前播放 DOPlayBackwards()//回放
4 From方法
对于一个Transform.DoMoveX/Y/Z(int(目标坐标),float(时间))方法默认是将Transform运行到目标位置,那么加上Form()方法后 即:Transform.DoMove().Form(true);
From里面的参数true表示:
相对自身来说的某个位置
若自身坐标为1 0 目标位置位置为5 1 那么实际的目标位置为5+1,1+0;
5.Tween里的方法
Tweener.SetEase(Ease.XX);此方法为动画播放的曲线 线性播放 来回播放等 Ease为枚举类型
Tweener.SetLoops();动画播放的次数
Tweener.OnComlete();在动画播放完成之后调用的方法
6. 控制Text组件
对于一个Text组件,使用Text.DoText(“文字”,时间),此方法将“”里的文字以一个动画效果显示吧
Text.DOColor //对颜色做动画Text.DOFade //对字体的透明度做动画
当我们要做屏幕震动效果时:
对摄像机调用这个方法:DoSharkPosition(int(时间),new vector3()(震动向量))vector3的向量指定了震动的方向 例如 若是在xy面上震动 则vector(1,1,0)
7 DoTweenAnimation进行可视化编辑动画
对一个物体添加DoTweenAnimation组件 然后进行创建动画 再用代码获取DoTweenAnimation组件 进行控制
move:表示动画类型
Duration表示运动时间
TO 表示目标位置