功能介绍
插件导入与设置
- 将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:路径点集合,可以在这里对每个点的位置进行精准调节
参考/拓展阅读
https://blog.csdn.net/zcaixzy5211314/article/details/84886663
https://blog.csdn.net/zcaixzy5211314/article/details/84988535