DoTween 学习

部分参考:DOTween中文详解(持续更新)_一条爱玩游戏的咸鱼的博客-CSDN博客 

官方文档:DOTween - Documentation (demigiant.com) 

什么是Tween(补间)

补间,一般指补间动画,例如unity的Animation窗口,插入两个图片或者对一个物体做变换时,unity会根据两个状态之间的帧,创建相应的动画,这就是补间。

如果不小心关闭或者关闭了想再次打开,你可以在unity的工具栏的Tools/Demigiant/DOTween Utility Panel 打开该面板。 

3、初始化DOTween,设置一些全局设置。
如果在每次创建DOTween脚本时不调用该方法进行初始化,DOTween也会根据默认的设置自动进行初始化设置 ,如果进行初始化必须在每次使用前调用该方法,否则不会有任何、效果。默认的设定可以在初始面板中的首选项(Preferences)中更改。
 

DOTween.Init();

DoTween 学习_第1张图片

 

命名空间:  DG.Tweening

命名法

  • Tweener :补间,控制值并为其生成动画。
  • Sequence:序列,控制多个补间作为组来处理。
  • Tween:通用词,通用词表示补间和序列。
  • Nested tween:嵌套补间,序列中包含的补间。


前缀

  • DO:所有快速实现一些补间效果的前缀(如变换Transform)的前缀。
  • Set:对当前效果进行设置。
  • On:一系的列回调

DoTween 学习_第2张图片

可以打一个 ,来查看方法提示

部分方法使用举例 

一个静态方法:

 static DOTween.To(setter, float startValue, float endValue, float duration)

 // Tweens a virtual property from the given start to the given end value
 // and implements a setter that allows to use that value with an external 
 // method or a lambda.

 DOTween.To(
            () => maskImage.color,  //The action to perform with the tweened value.
            toColor => maskImage.color = toColor, //The value to start from
            new Color(0, 0, 0, 0), //The value to reach.
            2f);  // The duration of the virtual tween.

 动画循环使用,鼠标左键右移 右键左移

    {//start
        private Tween maskTween;
        maskTween = transform.DOLocalMoveX(100, 0.5f);
        maskTween.SetAutoKill(false);
        maskTween.Pause();
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButton(0))
        {
            maskTween.PlayForward();
        }
        else if(Input.GetMouseButtonDown(1))
        {
            maskTween.PlayBackwards();
        }

动画事件回调

 //4.动画事件回调
        Tween tween = transform.DOLocalMoveX(100, 0.5f);
        tween.OnComplete(ComplateMethod);

private void ComplateMethod()
    {
        DOTween.To(() => maskImage.color, toColor => maskImage.color 
        = toColor, new Color(0, 0, 0, 0), 2f);
    }

设置动画的播放缓动函数以及循环状态和次数 

//设置动画的缓动函数以及循环状态和次数
        tween.SetEase(Ease.InOutBounce);
        tween.SetLoops(-1,LoopType.Incremental);  //-1表示无情此循环,动画累加播放

基本方法

DO前缀

Transform

Move

transform.DOMove(new Vector3(10, 0, 0), 10, false);
    作用:移动到某一指定点。(世界坐标)
	参数:
	     Vector3 to               要移动到的位置
	     float   duration         所需要花费的时间
	     bool    snapping         为true时平滑地将所有值变为整数。(每次移动整数值)默认为false
transform.DOMoveX()/DOMoveY()/DOMoveZ(10, 10f,false);
 	作用:沿着某一轴移动到指定位置。
	参数:
		 float   to				  要移动到的轴的坐标
		 float   duration         所需要花费的时间
		 bool    snapping         为true时平滑地将所有值变为整数。(每次移动整数值)默认为false
transform.DOLocalMove(new Vector3(10,0.5f,0),10f,false);
 	作用:移动自身坐标到指定位置。
 	参数:
 	Vector3 to               要移动到的位置
	     float   duration         所需要花费的时间
	     bool    snapping         为true时平滑地将所有值变为整数。(每次移动整数值)默认为false
transform.DOLocalMoveX()/DOLocalMoveY()/DOLocalMoveZ();
	作用:移动自身坐标到指定轴的指定位置。
	参数:
		 float   to				  要移动到的轴的坐标
		 float   duration         所需要花费的时间
		 bool    snapping         为true时平滑地将所有值变为整数。(每次移动整数值)默认为false
transform.DOJump(new Vector3(10, 0, 0),10,3,10,false);
	作用:实现跳跃到指定位置。
	参数:
		 Vector3 endValue         最终要跳跃到的位置
		 float   jumpPower        跳跃的强度,决定跳跃的高度(当前位置Y加上该值)
		 int     numJumps         跳跃的次数
		 float   duration         总持续时间
		 bool    snapping         为true时平滑地将所有值变为整数。(每次移动整数值)默认为false
transform.DOLocalJump(new Vector3(10, 0, 0),10,3,10,false);
    作用:实现跳跃到指定位置(自身坐标)。
	参数:
		 Vector3 endValue         最终要跳跃到的位置
		 float   jumpPower        跳跃的强度,决定跳跃的高度(当前位置Y加上该值)
		 int     numJumps         跳跃的次数
		 float   duration         总持续时间
		 bool    snapping         为true时平滑地将所有值变为整数。(每次移动整数值)默认为false

Rotate

transform.DORotate(Rote, 0.1f, RotateMode.Fast);
	作用:旋转到指定的值(根据欧拉角)。
	参数:
	     Vector3 to               旋转目标值
		 float   duration         总旋转用时
		 RotateMode
		 	     Fast             旋转采用最短路线,切旋转不会超过360°
		 	     FastBeyond360    旋转将超过360°
		 	     WorldAxisAdd     类似于使用transform.Rotate(new Vector3(20, 0, 0),Space.World),最终值始终被视为相对值
		 	     LocalAxisAdd     类似于使用transform.Rotate(new Vector3(20, 0, 0),Space.Self),最终值始终被视为相对值
transform.DORotateQuaternion();
	作用:旋转到指定的值(四元数)。
	参数:
		 Quaternion  to            要旋转到的四元数值
		 float   duration          旋转用时
transform.DOLocalRotate();
	作用:自身坐标旋转。
transform.DOLocalRotateQuaternion();
	作用:自身坐标旋转。
transform.DOLookAt();
	作用:旋转目标,使其朝向给定位置。
	参数:
		 Vector3			 towards			旋转目标值
		 float	    		 duration			旋转总用时
		 AxisConstraint		 axisConstraint 	旋转最终轴约束,只旋转此轴
		 Vector3             up                 定义向上方向的矢量
transform.DODynamicLookAt();
	作用:旋转目标,使其朝向给定位置,每帧更新 lookAt 位置(与此相反,当补间开始时,只计算一次 lookAt 旋转)
	参数:
		 Vector3			 towards			旋转目标值
		 float	    		 duration			旋转总用时
		 AxisConstraint		 axisConstraint 	旋转最终轴约束,只旋转此轴
		 Vector3             up                 定义向上方向的矢量

Scale

DOScale();
	作用:将物体放大/缩小到指定大小
	参数:
	float/Vector3 			to					浮点数为倍数,向量为指定大小
	float 					duration			放大/缩小总消耗时间
DOScaleX/DOScaleY/DOScaleZ();
	作用:对某一轴方向进行放大缩小
	float					to					放大到的倍数
	float 					duration			放大/缩小总消耗时间

Punch

DOPunchPosition();
	作用:受到冲击后的回弹效果
	参数:
	Vector3					punch 				要被击打到的最远位置(相对值,相对于局部坐标)
	float					duration			总持续时间
	int						vibrato				物体振动频率
	float					elasticity			值一般在0到1之间,0表示起点到冲击方向的震荡,1表示为一个完整的震荡,可能会超过起点,个人感觉后者效果更好。
	bool					snapping			是否进行平滑插值
	DOPunchRotation()
	作用:受到冲击后旋转效果
	参数:
	Vector3					punch 				要被击打到的角度(相对值,相对于局部坐标)
	float					duration			总持续时间
	int						vibrato				物体旋转频率
	float					elasticity			值一般在0到1之间,0表示最初角度到最大角度的旋转,1表示为一个完整的旋转,可能会超过最远角度。
	DOPunchScale()
	作用:实现一个弹性效果,反复弹,最终复原。
	参数
	Vector3					punch 				弹到的大小
	float					duration			总持续时间
	int						vibrato				物体放缩频率
	float					elasticity			值一般在0到1之间,0表示最初角度到目标大小的放缩,1会产生负值,出现警告。

你可能感兴趣的:(unity,unity)