DOTween的基本使用方法
DoTween
DoTween从何而来
在NGUI中提供了UITween 来支持UI的动画编写,极度降低了代码的复杂度,然而,我们的UGUI中并没有类似UITween的功能进行支撑,所以我们用到了第三方插件 DoTween。
在我们Unity官方的UGUI的Demo中UI的动画是使用Animator来制作的,试想一下,如果我们的UI如果需要动画效果,那么就需要使用 AnimationController,除此之外,还需要去编辑动画,如果数量不多
的UI可以这样,如果UI过多的需要动画,那么工作量就有些庞大了。所以现在市面上绝大多数使用UGUI开发的公司都使用了DoTween来辅助完成UI动画的设计,当然,DoTween也可以应用到3D物体上
记得大概2014年的时候就有了这款插件,这款插件最开始的时候就是应用到3D游戏物体上的动画,后来才被扩展到UGUI中
主要的方法(就是最常用的):
1.以DO开头的方法:就是补间动画的方法。例如:transform.DOMoveX(100,1)
2.以Set开头的方法:设置补间动画的一些属性。例如:myTween.SetLoops(4, LoopType.Yoyo)
3.以On开头的方法:补间动画的回调方法。例如:myTween.OnStart(myStartFunction)
1.导入插件:
插件我们在官网中可以直接下载,而且是免费的,直接点击下载导入就可:![](https://img-blog.csdnimg.cn/20201110182416179.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzUxMTg3MQ==,size_16,color_FFFFFF,t_70#pic_center)
这里点击这个就行:
后面会出现一个DoTween可以控制的一些方法:直接点击Apply
然后呢,我们随便建立一个脚本,如下:
这个时候我们是不能用DoTween的,要在开头加一个引用:Using DG.Tweening
之后就可以使用Do Tween的方法了;
这里先用一些简单的例子来使用DOTwenn的方法:
public class Text : MonoBehaviour
{public Vector3 value = new Vector3(0, 0, 0);private void Start(){//() => value表示返回获取value值//x => value = x,x是通过目标值计算出来的插值,赋值给value//new Vector3(10, 10, 0)是目标值//2是到达目标值的时间DOTween.To(() => value, x => value = x, new Vector3(10, 10, 0), 2);}// Update is called once per framevoid Update(){//value的值每帧赋值给物体,来达到使物体运动的效果transform.position = value;}
}
这些代码复制进去,然后把我们创建的脚本,放到相应的物体上
点击运行,这时候我们就可以看到物体2秒内移动的效果了,
这是To的方法移动
然后我们使用直接改变物体transfrom的方法使得物体移动,比如我让方块从0,0,0 =>10,10,10
先把之前代码删掉,然后开始,我们只需要把别的代码删掉,加一行代码就够了,然后点击运行就会看到
public class Text : MonoBehaviour
{private void Start(){//我们脚本赋值在哪个物体上,这就是哪个物体的transfrom(也就是位置)//new Vector3(10, 10, 10)这是物体要移动的到的位置//2是两秒之后移动到那个地方去transform.DOLocalMove(new Vector3(10, 10, 10), 2);}// Update is called once per framevoid Update(){}
}
另外 还有当我在这个后面加上From()时,就是倒放效果
transform.DOLocalMove(new Vector3(10, 10, 10), 2).From();//倒放,也就是从目标位置移动到当前位置
这里我们还可以设置动画曲线:然我们达到缓动或者各种曲线的效果
比如·:
transform.DOLocalMove(new Vector3(10, 10, 10), 2).SetEase(Ease.InOutFlash);
另外,我们不仅可以控制物体的移动,还有控制物体的大小,旋转,都是OK的;
代码也大都一样:
transform.DORotate(new Vector3(90, 90, 90), 2f);transform.DOScale(new Vector3(2, 2, 2), 2);
然后还有DoText:文字打印效果
text.DOText(“云想衣裳花想容,春风拂槛露华浓”, 2);
DOColor()修改颜色
text.DOColor(Color.red, 2);
DOFade()透明度渐变
text.DOFade(1, 2);
代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//这里注意要加命名空间
using DG.Tweening;public class Test : MonoBehaviour
{//定义Text的字段private Text text;private void Start(){//在我赋值的物体上找到Text这个组件text = gameObject.GetComponent<Text>();//文字打印机效果text.DOText("xxxxxxxxxxx", 4);//文字颜色渐变text.DOColor(Color.red, 4);//文字透明度渐变text.DOFade(1, 4);}}
创建一个Text
然后运行就可以看到效果了
DOShakePosition() 震动效果
//Camera.main是主摄像机//1,是震动频率//0.5f是时间Camera.main.transform.DOShakePosition(1, 0.5f);
SetLoops()设置循环播放次数
cube.transform.DOMoveX(5, 1).SetEase(Ease.InCubic).SetLoops(2);
OnComplete()当动画结束时运行的事件函数
cube.transform.DOMoveX(5, 1).OnComplete(() => { Debug.Log(“End”); });
OnStart()当动画第一次运行时的事件函数
cube.transform.DOMoveX(5, 1).OnStart(() => { Debug.Log(“Start”); });
DOTween的基本使用方法相关推荐
- Unity3d DOTween 插件 详细使用方法
Tween的移动类型有很多种,比如匀速运动.加速运动.减速运动,等等.如果你拿捏不准你需要用什么移动类形式. http://www.robertpenner.com/easing/easing_dem ...
- dotween unity 延时_Unity教程-使用DoTween实现飘字效果教程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 DoTween是一款比较强大的补间动画插件,本篇文章我们来学习下,利用DoTween来实现下飘字的效果,首先我们看下DoTween中几个方法: Seque ...
- 2小时搞定DoTween在商业项目中的使用
安装DoTween插件 首先,我们需要将DoTween插件添加到我们的Unity项目中.我们可以从Unity Asset Store中下载DoTween插件,并将其导入到我们的项目中. 对啦!这里有个 ...
- 从零开始制作基于Unity引擎的宝石消消乐(二)
完整项目我已经放到GitHub啦~ GitHub: https://github.com/lucaschen1993/Lukastar 前言 上一篇文章说到游戏的设计,现在就来讲一讲游戏内操作方法的实 ...
- 基于Unity3D的AR小游戏开发【100011412】
本科毕业设计(论文) GRADUATION DESIGN(THESIS) 基于 Unity3D 的增强现实游戏程序 摘要 增强现实(AR)作为一项新兴技术近年来被越来越多的人群所获知,AR 也渐渐走进 ...
- 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群
作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...
- Java面试题大全2021版
一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...
- U3D 扩展方法 Dotween tolua
U3D 扩展方法 & Dotween & tolua using UnityEngine; using System.Collections; using LuaInterface;/ ...
- Dotween Path 路径动画使用方法详解
Dotween对于路径动画部分的api我觉得注释的过少了,很多用法没有写清楚,这里我就对Dotween Path做一下详细说明 1.API Dotween对于路径动画就只提供了两个方法,一个是针对于世 ...
最新文章
- Python 进阶_OOP 面向对象编程_实例属性和方法
- Laravel5.2之Filesystem-从Dropbox中下载文件到AWS S3
- 数据结构学习官方代码
- Http基本身份验证在Spring Security中如何工作?
- SES2 LED控制
- 【通信】基于matlab数字基带传输系统【含Matlab源码 885期】
- 软件技术方案_广东省汕尾市海丰陈氏数字化网络化全县族谱统修工作方案(草案)...
- 兄弟无线打印显示服务器内部错误,兄弟打印机故障代码表
- 工作计划表怎么做?30份Excel工作计划表模板,职场人必备,可套用
- 有些软件,听着听着就没了...
- pc端分享到微信、微博、facebook、twitter
- python搭建微信小程序卖货要收费用吗_开发一个微信小程序需要多少钱?
- 银河麒麟V10 SP1服务版虚拟机安装
- 计蒜客 T1609 掷骰子
- Content type 'multipart/form-data;boundary=--------------------------496238283102520395700876;解决方案
- 阿里云服务器创建快照、回滚磁盘
- 马化腾: 你想想不充钱能不能玩这游戏? 丁磊:你仔细想想不充钱能不能玩这游戏? 张栋:CNM我就问你不充钱能玩我运营的游戏吗?...
- dnf服务器合并信息,DNF最大改动 全服合并9个大区 频道过百
- 不做人生规划,你离挨饿只有三天(转)
- js根据后缀名判断文件的类型
热门文章
- 【Ceres】(三)Covariance Estimation
- PagerAdapter中的NotifyDataSetChanged
- 并行算法设计与性能优化 刘文志 第7章 并行算法设计方法
- 第五届中国双创发展大会在杭州落幕 为新经济主体摸索发展路径
- Linux 下dlopen的使用
- TCP的ACK机制学习日志
- 【USB笔记】配置描述符Configuration Descriptor
- 管理 - 如何与领导相处
- Java - 字母忽略大小写排序,但同一个字母的大写排在小写后面
- 技术·融合·治理|众享链网2021发布会暨试运行启动仪式成功举办