本文及系列参考于Andy老师的DOTween系列

欢迎大家关注Andy老师

6、Set设置参数

Unity中添加一个Cube,并挂载这个脚本

SetLoops():设置循环

  1. //参数1.循环次数(-1表示无限循环)
  2. //参数2.循环方式
  3. //Yoyo:来回运动
  4. //Restart:重新开始(运动完马上返回原来状态再接着运动)
  5. //Incremental:一直朝着一个方向运动
  6. transform.DOMove(Vector3.one, 2).SetLoops(-1,LoopType.Yoyo);

SetAutoKill():设置自动杀死动画

  1. transform.DOMove(Vector3.one, 2).SetAutoKill(true);

From():反向

  1. //from(反向运动,从目标点运动回起始点)
  2. //true为增量运动,false则为目标值运动。无参默认为目标值运动
  3. transform.DOMove(Vector3.one, 2).From(true);

SetDelay():设置延时执行

  1. transform.DOMove(Vector3.one, 2).SetDelay(2);

SetSpeedBased():设置动画以速度为基准

  1. //参数2.原本表示持续时间的参数,就变为了每秒的速度
  2. transform.DOMove(Vector3.one*5, 2).SetSpeedBased();

SetRelative():设置为增量运动

  1. transform.DOMove(Vector3.one * 5, 2).SetRelative(true);

SetId():设置动画ID

  1. //设置ID,可以用于之后再调用
  2. transform.DOMove(Vector3.one * 5, 2).SetId("id");
  3. DOTween.Play("id");

SetRecyclable():设置动画是否可回收

  1. //设置是否可回收
  2. //为true的话,动画播放完会被回收,缓存下来,不然播完就直接销毁
  3. transform.DOMove(Vector3.one * 5, 2).SetRecyclable(true);

SetUpdate():设置动画的帧函数

  1. //设置动画的帧函数
  2. //第一个参数 UpdateType :选择使用的帧函数
  3. //UpdateType.Normal:更新每一帧中更新要求。
  4. //UpdateType.Late:在LateUpdate调用期间更新每一帧。
  5. //UpdateType.Fixed:使用FixedUpdate调用进行更新。
  6. //UpdateType.Manual:通过手动DOTween.ManualUpdate调用进行更新。
  7. //第二个参数:为TRUE,则补间将忽略Unity的Time.timeScale
  8. transform.DOMove(Vector3.one * 5, 2).SetUpdate(UpdateType.Fixed);

7、Ease曲线

Unity中添加一个Cube,并挂载这个脚本

SetEase():设置曲线

点击这里查看Ease的各种枚举类型的效果动画

  1. //参数1 Ease的各种枚举类型
  2. //参数2 Amplitude(振幅):就是移动次数,起始点移动到目标算移动一次,再移动回来移动两次
  3. //参数3 period 值的范围是 -1~1
  4. //值 > 0时,为活动范围的衰减值,活动范围会由大变小
  5. //值 = 0时,就是均匀的在起始坐标和目标坐标之间运动
  6. //值 < 0时,会施加一个向目标坐标的一个力,活动范围一点点增大,最后逼近目标点
  7. //这两个参数只对Flash, InFlash, OutFlash, InOutFlash这四种曲线有用,其他的曲线起作用的就只有Ease枚举参数
  8. transform.DOMove(Vector3.one * 5, 2).SetEase(Ease.InBack,3,0);

Animation设置曲线:

  1. public AnimationCurve curve;
  2. private void Start()
  3. {
  4. transform.DOMove(Vector3.one * 2, 1).SetEase(curve);
  5. //AnimationCurve 横轴是时间, 不过不是具体的时间,而是时间比例
  6. //AnimationCurve 纵轴是倍数
  7. //假设纵轴的值为v,传入DOMove的第一个参数endValue是e,起始点坐标是s
  8. //此物体最后动画结束时的实际坐标即为 v * (e - s)+s
  9. }

以回调函数为参数:

  1. private void Start()
  2. {
  3. transform.DOMove(Vector3.one * 5, 2).SetEase(EaseFun);
  4. }
  5. //返回值是运动距离的百分比 值应为0~1之间,最后的值需为1,不然停留的位置不会是目标位置
  6. private float EaseFun(float time, float duration, float overshootOrAmplitude, float period)
  7. {
  8. return time / duration;
  9. }

8、回调函数

Unity中添加一个Cube,并挂载这个脚本

1.动画完成回调

  1. transform.DOMove(Vector3.one, 2).OnComplete(() => { });

2.完成单个循环周期时触发

  1. transform.DOMove(Vector3.one, 2).OnStepComplete(() => { });

3.动画被杀死时回调

  1. transform.DOMove(Vector3.one, 2).OnKill(() => { });

4.动画播放时回调,暂停后重新播放也会调用

  1. transform.DOMove(Vector3.one, 3).OnPlay(() => { });

5.只在第一次播放动画时调用,在play之前调用

  1. transform.DOMove(Vector3.one, 2).OnStart(() => { });

6.动画暂停时回调

  1. transform.DOMove(Vector3.one, 2).OnPause(() => { });

7.动画回退时回调

  1. //以下情况会被调用
  2. //使用DORestart重新播放时
  3. //使用Rewind倒播动画完成时
  4. //使用DOFlip翻转动画完成时
  5. //使用DOPlayBackwards反向播放动画完成时
  6. transform.DOMove(Vector3.one, 2).OnRewind(() => { });

8.帧回调

  1. transform.DOMove(Vector3.one, 2).OnUpdate(() => { });

9.在路径动画时,改变目标点时的回调,参数为当前目标点的下标

  1. transform.DOMove(Vector3.one, 2).OnWaypointChange((value) => { });

9、动画控制函数

Unity中添加一个Cube,并挂载这个脚本

1.播放

  1. transform.DOPlay();

2.暂停

  1. transform.DOPause();

3.重播

  1. transform.DORestart();

4.倒播,此方法会直接退回起始点

  1. transform.DORewind();

5.平滑倒播,此方法会按照之前的运动方式从当前位置退回起始点

  1. transform.DOSmoothRewind();

6.杀死动画

  1. transform.DOKill();

7.翻转补间的方向和Rewind效果有点像

  1. transform.DOFlip();

8.跳转时间点

  1. //第一个参数跳转的时间点,第二个参数是跳转后是否播放动画
  2. transform.DOGoto(1.5f, true);

9.反向播放动画

  1. //反向播放动画,在动画播放到一半时执行,会退回起始点,在一开始执行看不到效果是因为,物体本身就在起始点
  2. transform.DOPlayBackwards();

10.正向播放动画

  1. transform.DOPlayForward();

11.TogglePause

  1. //当暂停时,执行就继续播放,播放时,执行就暂停
  2. transform.DOTogglePause();

Unity---DOTween插件学习(2)---设置参数、Ease曲线、回调函数、动画控制函数的更多相关文章

  1. FlexSlider插件的详细设置参数 http://www.woothemes.com/flexslider/

    http://www.woothemes.com/flexslider/ FlexSlider插件的详细设置参数 $(window).load(function() { $('.flexslider' ...

  2. Mybatis 插件实现动态设置参数

    原文地址:Mybatis 插件实现动态设置参数 博客地址:http://www.extlight.com 一.背景 笔者在搭建架构时,通常会利用泛型对 dao 层 和 service 层公共的代码(增 ...

  3. unity Dotween插件的简单介绍及示例代码

    unity里面做插值动画的插件有许多,比较常见的有itween.hotween.dotween.根据大家的反馈和实际体验来说,dotween插件在灵活性.稳定性.易用性上都十分突出.这里简单介绍下它的 ...

  4. Node.js学习笔记(3)——关于回调函数和函数的回调

    说明:本人是node.js的初学者,尝试向别人解释这是怎么回事是自我学习的一个好方法.如果你发现有些地方并不是那么正确,欢迎提出来让我知道以便修正,共同进步,谢过^_^.       欢迎交流,本人微 ...

  5. JS学习:第二周——NO.1回调函数

    [回调函数] 定义:把一个函数的定义阶段,作为参数,传给另一个函数: 回调函数调用次数,取决于条件: 回调函数可以传参: 回调函数可以给变this指向,默认是window: 回调函数没有返回值,for ...

  6. Node.js 学习(四)Node.js 回调函数

    Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都 ...

  7. OpenCV学习3-----利用鼠标、键盘回调函数实现标定人体关节点

    最近做实验,需要一些人体关节点的ground truth,需要自己手动标定,于是尝试使用OpenCV的鼠标键盘回调函数实现. 期间遇到不少问题,记录一下. 首先就是鼠标回调函数注册, namedWin ...

  8. 正则表达式的方法:replace,match,test(replace参数可以是回调函数)

    1.replace: 作用对象:字符串 功能:用于替换字符串中的某些字符 参数:(1)正则表达式 (2)要替换的字符串 或者 回调函数 var str="1 2 3 4 5 6 7 8 9& ...

  9. 【Dart学习】-- Dart之匿名方法 & 回调函数 & 闭包

    一,匿名方法定义 (参数1,参数2,....){ 方法体... return 返回值 } 二,匿名方法特性 可赋值给变量,通过变量进行调用 可在其他方法中直接调用或传递给其他方法 void main( ...

随机推荐

  1. python-socket1

    如何理解socket编程 就是两个进程,跨计算机,他俩需要通讯的话,需要通过网络对接起来.这就是 socket 的作用.打个比方吧,两个进程在两个计算机上,需要有一个进程做被动方,叫做服务器.另一个做 ...

  2. JavaUtil_08_StringUtil_commons-lang3 之 StringUtils

    二.参考资料 1.[commons]字符串工具类——commons-lang3之StringUtils

  3. python-编译安装Python2.7

    yum中最新的也是Python 2.6.6,只能下载Python 2.7.5的源代码自己编译安装. 操作步骤如下: 1)下载并解压Python 2.7.9的源代码 cd /opt wget --no- ...

  4. linux命令学习笔记(41):ps命令

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前 那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程 ...

  5. ffmpeg推流命令参数记录

    列出我们本机的设备:ffmpeg -list_devices true -f dshow -i dummy .\ffmpeg -r 25 -f dshow -s 640*480 -i video=&q ...

  6. p2p视频点播系统开发案例――Myseelite

    项目地址:http://sourceforge.net/projects/myseelite/ 1. MySee公司倡导的开源项目,目前国内功能最强大的一个开源系统. 2. 一个直播(也支持轮播.点播 ...

  7. Metaspoit的使用

    一.环境的使用和搭建 首先我的攻击机和靶机都搭建在虚拟机上,选用的是VMware Workstation Pro虚拟机. 攻击机选用的是Linux kali 2017.2版本,而靶机安装的是XP sp ...

  8. JS字符串类型转日期然后进行日期比较

    1.字符串转日期格式 var stringToDate = function(dateStr,separator){ if(!separator){ separator="-"; ...

  9. 训练集、测试集loss容易出现的问题总结

    train loss 不断下降,test loss不断下降:说明网络仍在学习; train loss 不断下降,test loss趋于不变:说明网络过拟合; train loss 趋于不变,test ...

  10. Android HttpGet和HttpPost设置超时

    HttpPost: private Runnable runnable = new Runnable() { @Override public void run() { String url = Ba ...