DOTween的基本用法
首先声明一点,不要简单的认为 DOTween 只能用在 Transform 组件上完成一些简单的动画,或者是完成一些 UI 动画,DOTween 的用途是很广的,unity中有很多组件都可以使用 DOTween 插件完成动画,大家可以去 DOTween 的官网看一下http://dotween.demigiant.com/documentation.php。看完之后,你会有一种相见恨晚的感觉。
下面介绍一下常用的API,并以 Transform 组件写个小例子:
常用的函数都是以DO开头,大家可以自己看下文档。
组件实例.DOPlay():播放动画
组件实例.DOPause():暂停动画
组件实例.DOPlayForward():正放动画
组件实例.DOPlayBackwards():倒放动画,倒放不会循环
组件实例.DOKill():杀死动画
提醒下大家,一定要用组件实例去调用上面这些方法,如果用 this 关键字去调用,不会有语法错误,但是不会有效果
tweener.SetLoops():设置循环次数。-1:无限循环
tweener.SetEase():设置缓动效果
生命周期:
tweener.OnStart():动画开始时调用,不管循环多少次,只调用一次
tweener.OnUpdate():动画播放时调用
tweener.OnPlay():动画开始播放时调用
tweener.OnPause():动画暂停时调用
tweener.OnKill():动画完全结束时或者被杀死时调用
tweener.OnStepComplete():单次动画结束时调用,因为我们设置了循环,这里时指单次动画结束
tweener.OnComplete():动画完全结束时调用,在OnKill之前调用
tweener.OnWaypointChange():这个我还没搞清楚到底什么时候调用,知道的大佬告诉一声,谢谢!
tweener.OnRewind():倒放结束时调用
Sequence队列:就是将多个动画放到一个队列里面,然后挨个挨个播放,并可以循环。
DOTween.Sequence():创建队列。
sequence.Append(tweener):将动画加入队列。
sequence.Insert(1, tweener):插入一个并行的动画到队列的某个位置。
sequence.SetLoops(-1):设置队列是否循环。-1:无限循环。
- using UnityEngine;
- using DG.Tweening;
- public class Subject1Test : MonoBehaviour
- {
- #region --变量定义
- private Tweener tweener;
- private bool isPause = false;
- #endregion
- #region --系统函数
- private void Start()
- {
- tweener = this.transform.DOMove(new Vector3(, , ), 5f);
- tweener.SetLoops(-);//设置循环次数。-1:无限循环
- tweener.SetEase(Ease.OutBack);//设置缓动效果
- tweener.OnStart(delegate { Debug.Log("OnStart"); });//动画开始时调用,不管循环多少次,只调用一次
- tweener.OnUpdate(delegate { Debug.Log("OnUpdate"); });//动画播放时调用
- tweener.OnPlay(delegate { Debug.Log("OnPlay"); });//动画开始播放时调用
- tweener.OnPause(delegate { Debug.Log("OnPause"); });//动画暂停时调用
- tweener.OnKill(delegate { Debug.Log("OnKill"); });//动画完全结束时或者被杀死时调用
- tweener.OnStepComplete(delegate { Debug.Log("OnStepComplete"); });//单次动画结束时调用,因为我们设置了循环,这里时指单次动画结束
- tweener.OnComplete(delegate { Debug.Log("OnComplete"); });//动画完全结束时调用,在OnKill之前调用
- tweener.OnWaypointChange(delegate { Debug.Log("OnWaypointChange"); });
- tweener.OnRewind(delegate { Debug.Log("OnRewind"); });//倒放结束时调用
- }
- private void Update()
- {
- ControlTweener();
- }
- #endregion
- #region --自定义函数
- private void ControlTweener()
- {
- if (Input.GetKeyDown(KeyCode.Space))
- {
- isPause = !isPause;
- if (isPause)
- {
- this.transform.DOPause();//暂停动画
- }
- else
- {
- this.transform.DOPlay();//播放动画
- }
- }
- if (Input.GetKeyDown(KeyCode.F))
- {
- this.transform.DOPlayForward();//正放动画
- }
- if (Input.GetKeyDown(KeyCode.B))
- {
- this.transform.DOPlayBackwards();//倒放动画
- }
- if (Input.GetKeyDown(KeyCode.K))
- {
- this.transform.DOKill();//杀死动画
- }
- }
- #endregion
- }
DOTween的基本用法的更多相关文章
- DoTween可视化编程用法详解
DoTween可视化编辑 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新 ...
- DoTween用法教程
DoTween用法攻略 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创 ...
- DoTween的用法
using UnityEngine;using System.Collections;using DG.Tweening;using UnityEngine.UI; public class Test ...
- 时光煮雨 Unity3D让物体动起来③—UGUI DoTween&Unity Native2D实现
本文首发蛮牛,次发博客园.接系列 第一篇,第二篇,本文为第三篇,再次感谢“武装三藏”在前两篇无私且精彩的问题解答 写在最前,时光煮雨,为了怀念 以下引用曾今读过的一些教程文章 其实这3种动画都有它特定 ...
- unity Dotween插件的简单介绍及示例代码
unity里面做插值动画的插件有许多,比较常见的有itween.hotween.dotween.根据大家的反馈和实际体验来说,dotween插件在灵活性.稳定性.易用性上都十分突出.这里简单介绍下它的 ...
- Unity DoTween 动画使用案例
这边我就直接放一个标准的Dotween动画的使用demo吧. 这个案例满足应该可以完成你所想实现的几乎所有复杂动画. void PlayTween() { //set tween data float ...
- Unity进阶----DoTween及工程文件夹的建立(2018/11/12)
DoTween 仅介绍部分常用用法,代码参上:(其它操作见官网:http://dotween.demigiant.com/documentation.php) using System.Collect ...
- DoTween
dotween最原始的用法 using System.Collections; using System.Collections.Generic; using UnityEngine; using D ...
- Unity3D热更新之LuaFramework篇[05]--Lua脚本调用c#以及如何在Lua中使用Dotween
在上一篇文章 Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法 中,我对LuaBehaviour脚本进行了扩展,添加了两个新的UI监听方法,也提到最好能单写一个脚本处理此 ...
随机推荐
- Spring事务mysql不回滚:mysql引擎修改
若Spring中@Transactional 注解开启且配置没问题的话,很可能是mysql数据库引擎不支持. mysql引擎是MyISAM的话事务会不起作用,原因是MyISAM不支持事务和外键,改成支 ...
- java第一天 数据类型、变量的命名、类型的转换
数据类型 /* 数据类型:Java是一种强类型语言,针对每一种数据都给出了明确的数据类型 数据类型分类: A:基本数据类型 B:引用数据类型(类,接口,数组) 基本数据类型:4类8种 A:整数 字节 ...
- Freemarker 对于数字的循环
Freemarker 对于数字的循环 格式:[#list count.. as i] ${i} [/#list] ******************************************* ...
- codecombat之地牢关卡Python代码
1.地牢 # 向宝石进发. # 小心撞墙! # 在下面输入你的代码. self.moveRight() self.moveDown() self.moveRight() 2.深藏的宝石 # 利用你的移 ...
- c++ vector push_back对象的时候存起来的是拷贝
比如 class C1; vector<C1> vec;C1* p=new C1;vec v1;v1.push_back(&(*p));delete p; 这里,传进函数的是引用, ...
- 20175126《Java程序设计》第三学习总结
# 20175126 2016-2017-2 <Java程序设计>第三周学习总结 ##课余收获——利用JAVA编写最简单的斗地主程序 -由于最近身边的朋友都在玩手机上的斗地主小游戏,我也就 ...
- 将jar包添加到本地maven仓库中
在使用maven依赖添加jar包时,有时会遇到下载不成功的问题,这时需要将jar手动添加到本地的maven仓库中. 准备工作 配置好maven的环境变量 已经下载好的jar包 具体过程 win + R ...
- dwr去除默认错误弹窗
在开发中,我实在不希望dwr弹出alter,只需要打印错误日志就可以,客户端不需要alert出error或者a server error has occurred. 这样的提示,更不需要alert出堆 ...
- 重温IO
IO就是输入输出,输出流可以理解为向目标写入数据,输入流可以理解为从源地址读取.流是一组有序的数据序列. 输入流 输出流 字节流 InputStream OutputStream 字符流 Read ...
- mkfs.ext4快速格式化大容量硬盘
安装ext4: yum -y install e4fsprogs 使用如下命令可以快速格式化大容量硬盘: mkfs.ext4 -T largefile /dev/xxx