功能介绍

插件导入与设置

  • 将DoTween资源包拖拽导入Unity项目中
  • Tools-->Demigiant-->DoTweenUtilityPanel进行插件设置

资源结构

资源目录结构

Demigiant[插件的根目录,也是该插件的公司名]

|---DemiLib[插件核心类库]

|---DOTween[插件基础版资源]

|---DOTweenPro[插件专业版资源,在基础版之上扩展出高级功能]

|---DOTweenProExamples[插件专业版实例工程]

插件功能菜单

  • 功能组件:Component-->DoTween-->DoTweenAnimation[基础动画]
    -->DoTweenPath[路径动画]
  • 备注:这两个动画组件,就是DoTweenPro内提供的,使用组件控制动画。
  • 设置面板:Tools-->Demigiant-->DoTweenUtilityPanel

基本使用

命名空间

使用DoTweenApi,需要引入命名空间,usingDG.Tweening;

模型动画

  • 模型移动动画:DOMove方法
    • //1)改变世界坐标
      //移动方法,第一个参数是要移动到的目标点,不是移动这个向量的距离,第二个参数是移动花费的时间
      transform.DOMove(newVector3(1,1,1),2);
      //只控制x轴上的移动,其他两个方向同理
      transform.DOMoveX(1,2);
      
      //2)改变局部坐标
      transform.DOLocalMove(newVector3(1,1,1),2);
      transform.DOLocalMoveX(1,2);
      
  • 模型旋转动画:DORotate方法
    • //1)世界旋转
      //旋转到给定的值,改变的是欧拉角
      transform.DORotate(newVector3(0,90,0),2);
      //旋转到给定的值,改变的是四元数
      transform.DORotateQuaternion(newQuaternion(0.1f,0.1f,0.1f,0.1f),2);
      
      //2)局部旋转
      //旋转到给定的值,改变的是欧拉角
      transform.DOLocalRotate(newVector3(0,90,0),2);
      //旋转到给定的值,改变的是四元数
      transform.DOLocalRotateQuaternion(newQuaternion(0.1f,0.1f,0.1f,0.1f),2);
      
      //在给定时间内,平滑的让自身的z轴正方向指向目标点
      transform.DOLookAt(newVector3(0,0,0),2);
      
  • 模型缩放动画:DOScale方法
    • //同上面一样,这里改变物体的缩放到目标值
      transform.DOScale(newVector3(2,2,2),2);
      //其他两个轴向同理
      transform.DOScaleX(3,2);
      

UI动画

  • 图片颜色动画:DOColor方法
  • 图片透明度动画:DOFade方法
  • 图片缩放动画:DOScale方法

属性设置

  • 这一组方法的方法名,统一以“Set”开头;
  • 可以在上方的动画方法的后面,进行属性的设置。
  • 例如:SetLoops[设置循环次数]

事件回调

  • 这一组方法的方法名,统一以“On”开头
  • 可以在上方的动画方法的后面,也可以在属性设置方法的后面,进行事件回调方法的绑定
  • 例如:OnComplete[当执行完毕后事件]

动画控制

两种API

  • “注入”到Unity原有组件类中的api方法。
    • 语法格式:组件对象名.DOxxx().Setxxx().Onxxx()[对象.动画().属性().事件回调()];
  • DoTween的一组独立的功能类。
    • DoTween工具类中的静态方法,然后使用Lambda表达式传值的方式,来实现动画控制。

通用式动画控制

DOTween.To(()=>myValue,x=>myValue=x,rinal,time);

格式分析:

  • DOTween.To():DoTween插件中功能类的一个静态方法
  • ()=>myValue:获取对象元素Lambda表达式
  • x=>myValue=x:赋值对象元素Lambda表达式
  • final:最终的目标值
  • time:动画持续的时间

例子:

  • 模型位移动画(两种方法效果相同)
    • DOTween.To(()=>cube_Transform.position,x=>cube_Transform.position=x,newVector3(3,5,3),2);
      cube_Transform.DOMove(newVector3(3,5,3),2);
      
  • 模型缩放动画
    • DOTween.To(()=>cube_Transform.localScale,x=>cube_Transform.localScale=x,newVector3(5,5,5),2);
      cube_Transform.DOScale(5,2);
      
  • 图片颜色动画
    • DOTween.To(()=>m_Image.color,x=>m_Image.color=x,Color.red,2);
      m_Image.DOColor(Color.red,2);
      
  • 图片透明度动画
    • DOTween.To(()=>m_Image.color,x=>m_Image.color=x,newColor(m_Image.color.r,m_Image.color.g,m_Image.color.b,0.5f),2);
      m_Image.DOFade(0.5f,2);
      

Animation动画组件

组件介绍

实际开发中,我们一般用上面介绍过的代码来完成动画效果,但是在此仍然介绍一下DoTweenAnimation动画组件的使用

游戏物体添加Animation组件:

  • 选中你需要添加DoTweenAnimaton组件的游戏物体
  • Component-->DOTween-->DOTweenAnimation

动画相关属性

AddManager:点击后会增加DOTween Visual Manager这个组件,可以编辑控制游戏对象enable、disable时候的行为

通过下拉菜单选择“动画效果”,然后会出现和该动画对应的可控制属性:

  • AutoPlay/AutoKill:默认情况下开启,开始游戏后动画会自动播放,播放完成后tweens自动被杀死,杀死后的动画只能保持在动画结束时的状态
  • Duration:持续时间
  • Delay:延迟
  • IgnoreTimeScale:忽略时间缩放
  • Ease:动画曲线
  • Loops:循环,配套设置循环的类型
  • TO:目的地,可以设置一个Vector3,也可以指定一个对象的Transform

常用事件:

  • OnStart:动画开始事件,执行一次
  • OnPlay:动画播放事件,执行一次[先开始,再播放]
  • OnUpdate:动画更新事件,在动画播放的过程中,持续执行N次
  • OnComplete:动画播放完成事件,执行一次

Path路径组件

组件介绍

  • 使用Path 路径组件,可以在场景内创建N 个点,由点自动连接成线,然后游戏物体就可以沿这根线,进行路径运动。
  • Path 路径效果同样也可以用代码实现,但是代码会比较繁琐且麻烦,因为你需要用代码设置每个路径点的位置,操作性很差,所以说路径用Path 组件。
  • 组件用途
    • 游戏模型路径运动(塔防小怪行走路线,马路上的汽车运动)
    • 摄像机运动动画(建筑场景漫游,游戏过场动画,VR 过山车)
  • 其实本质就是事先规划好一个路径,然后让游戏物体在该路径上运动

组件操作

Path 路径创建

  • 首先选中需要设置路径的游戏物体,然后给它添加Path 路径组件
  • Shift+Ctrl+鼠标左键单击:添加一个新的路径点
  • Shift+Alt+鼠标左键点击:移除一个路径点
  • 鼠标左键单击:调整路径点的位置

Tween Options [动画选项]

这一部分属性和Animation 动画控制属性几乎一样。

Path Tween Options [路径动画选项]

  • PathType:路径类型,设置路径点的两端是直线还是弧度,弧线会让曲线更加平滑
  • ClosePath:关闭路径,模型最终会回到起点位置
  • PathMode:路径模式,一般保持默认
  • LookRotation:锁定某个轴向
  • Orientation:方向,最常用的是ToPath,模型沿路径正方向移动
  • LookAhead:0为正方向,一般调到0即可

Path Editor Options [路径编辑选项]

  • Relative:路径相对于模型移动
  • Color:路径线的颜色
  • ShowIndexes:显示路径点的位置索引

Extras [额外属性]

  • ResetPath:路径重置
  • Waypoints:路径点集合,可以在这里对每个点的位置进行精准调节

参考/拓展阅读

http://dotween.demigiant.com/

https://blog.csdn.net/zcaixzy5211314/article/details/84886663

https://blog.csdn.net/zcaixzy5211314/article/details/84988535

https://blog.csdn.net/Wrinkle2017/article/details/122824424