【Unity学习笔记】DOTween(1)基础介绍

这篇具有很好参考价值的文章主要介绍了【Unity学习笔记】DOTween(1)基础介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Unity学习笔记】DOTween(1)基础介绍,Unity学习笔记,unity,学习,笔记

本文中大部分内容学习来自DOTween官方文档


什么是DOTween?

DOTween是一个动画插件,Tween是补间的意思。这个插件以下简称DOT,DOT很方便使用,只需要记住四个类,三个方法:

四个类

  • Tweener
  • Sequence
  • Tween
  • Nested Tween

三个方法

  • DO
  • Set
  • On

DO

DOT中的方法名是很统一的,因此我们从前缀就可以大概知道这个方法是干什么的,怎么用的。

  • DO代表了实现动画的方法,它是调用tween补间动画的快捷方法的前缀,我们可以直接从想要应用动画的对象的后面(比如物体transform,或者材质texture,文字text,颜色color等等)点出想要使用补间动画的DO方法:
transform.DOMoveX(100, 1);// 只需在物体的transform后面使用DOMoveX方法,就直接实现了物体在x轴上的移动
transform.DORestart();
DOTween.Play();

Set

  • Set为前缀的方法用于改变一个tween的设置,通常Set方法可以为Tween以及其派生类进行设置,Tween后面可以无限追加set。
var tweenerA = buttonA.DOMove(new Vector3(700, 200, 0), 5)
.SetLoops(3,LoopType.Yoyo).SetSpeedBased();
myTween.SetLoops(4, LoopType.Yoyo).SetSpeedBased();
// 展示一下无限set
myTween.SetSpeedBased().SetSpeedBased().SetSpeedBased().SetSpeedBased();

On

  • On为前缀的方法代表了可被调用的补间动画的回调,在补件动画的对应时刻会触发这些回调并调用其内部的函数委托。

官方示例:

// 委托回调也可以无限调用
myTween.OnStart(myStartFunction).OnComplete(myCompleteFunction);

调度单个匿名函数

tweener.OnStart(()=> { Debug.Log("动画开始"); });
// 在Tweener开始时调用委托

调度DOTween提供的官方委托类型:TweenCallback

TweenCallback tweenCallback = new TweenCallback(() => { Debug.Log("动画开始"); });
tweenCallback += () => { Debug.Log("我是TweenCallback委托"); };
tweener.OnStart(tweenCallback);
// tweener动画开始时调度委托
// 输出:动画开始
// 我是TweenCallback委托

Action一样,TweenCallback是可接受泛型参数的无返回值委托,


Tweener

  • Tweener 补间,用于控制补间插值和动画的类,大部分时候我们需要操纵的就是Tweener类:
Tweener tweener;
private void Start()
{
    tweener = transform.DOMove(new Vector3(500, 500, 0), 5);
    var twe = transform.DOMove(new Vector3(500, 500, 0), 5);
    Debug.Log(tweener.GetType());
    Debug.Log(twe.GetType());
}

通过检查代码以及获取类型后发现,DO方法返回的类型是TweenerCore类型,它继承于Tweener,因此根据里氏替换原则,Tweener可转换为TweenerCore。


Sequence

  • Sequence 序列,一种特殊的补间,它不是控制某个值,而是控制其他补间并将它们作为一个序列进行动画处理。
private void Start()
{
    tweener = transform.DOMove(new Vector3(500, 500, 0), 5);
    var tweenerA = buttonA.DOMove(new Vector3(700, 200, 0), 5);
    var seq = DOTween.Sequence();
    seq.Append(tweener);
    seq.Append(tweenerA);
}

类似于委托,Sequence可以顺序地执行补间动画,当然也可以在某个时间节点来设定定时执行。

var s = DOTween.Sequence();
var Cube1RunTime = 1.0f;
var Cube2RunTime = 1.0f;
s.Append(this.m_Trans.DOLocalMoveX(2.0f, Cube1RunTime));
s.Append(this.m_Trans.DOLocalMoveX(-3.42f, Cube1RunTime));
//在队列动画开始后的Cube1RunTime秒后播放
s.Insert(Cube1RunTime, this.m_Other.DOLocalMoveY(2.5f, Cube2RunTime));

具体的用法也将会在未来介绍。


Tween

  • Tween,Tweener和Sequence的统称,从代码上看,它是Tweener和Sequence的基类,也是DOTween这个插件最基础的类

Nested tween

  • Nested Tween嵌套补间,Sequence中包含的补间。代码中看不到,应该是Sequence内部的Tween的别名。

初始化

在使用DOTween之前,需要进行初始化,最简单的初始化方式是在导入后进行,如下图所示:
【Unity学习笔记】DOTween(1)基础介绍,Unity学习笔记,unity,学习,笔记
当然也可以用代码进行默认的初始化,而官方推荐如果想要自己设置初始化,可以使用下列代码

// EXAMPLE A: initialize with the preferences set in DOTween's Utility Panel
// 默认使用推荐配置初始化
DOTween.Init();
// EXAMPLE B: initialize with custom settings, and set capacities immediately
// 自定义设定初始化
DOTween.Init(true, true, LogBehaviour.Verbose).SetCapacity(200, 10);

// recycleAllByDefault: true自动回收,如果Tween被OnKill时不是销毁而会被回收到池中,不允许GC对他们销毁,而有可能被再次调用重生
// useSafeMode: true安全模式,补间有可能变慢,但换来的是更安全的操作
// LogBehaviour: 日志行为,根据选择模式设置日志
public static IDOTweenInit Init(bool? recycleAllByDefault = null, bool? useSafeMode = null, LogBehaviour? logBehaviour = null);

使用方式

使用Tween时有两种调用方法,一种是我们介绍过的DO前缀方法,这类方法是对完整方法的快捷调用,可以直接设定在调用的对象后,也不需要指定调用委托:

transform.DOMove(new Vector3(2,3,4), 1);
rigidbody.DOMove(new Vector3(2,3,4), 1);
material.DOColor(Color.green, 1);

使用DO方法,除了从初始值补间到设定值之外,如果我们加上From()方法,就可以从设定值补间到初始值:

transform.DOMove(new Vector3(2,3,4), 1).From();
rigidbody.DOMove(new Vector3(2,3,4), 1).From();
material.DOColor(Color.green, 1).From();

除了快捷方法之外,还有一种完整方法的使用:

// 使用静态方法定义一个Tween
// 四个参数分别是getter,setter,to,duration
// getter,setter是泛型委托,它们并不支持所有的泛型,定义里只定义了一部分的类型
// getter委托用于接受初始值的类型
// setter委托用于接受初始值并作为入参
// to参数代表了最终值
// duration参数代表了从初始值补间到最终值的时间
// Tween a Vector3 called myVector to 3,4,8 in 1 second
DOTween.To(()=> myVector, x=> myVector = x, new Vector3(3,4,8), 1);
// Tween a float called myFloat to 52 in 1 second
DOTween.To(()=> myFloat, x=> myFloat = x, 52, 1);

DOTween.TO()方法并不直接应用补间,而是对接受类型的数据进行从初始值到最终值的,随时间变化的补间赋值。例如:

Vector3 transform= Vector3.zero;
DOTween.To(()=> transform, x=> transform= x, new Vector3(3,4,8), 1);

那么在一秒内,transform会从(0,0,0)变化到(3,4,8),但是因为没有set物体的transform,因此物体本身是不动的。


以上就是DOTween的一些基础用法,许多方法相信大家看到函数名就知道是什么意思了,DOTween提供了许多补间方法,高级点的用法就很牛了,甚至还能对接AVpro:
摘自Unity DOTween.To
【Unity学习笔记】DOTween(1)基础介绍,Unity学习笔记,unity,学习,笔记文章来源地址https://www.toymoban.com/news/detail-670824.html

到了这里,关于【Unity学习笔记】DOTween(1)基础介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity学习笔记--基础

    Mathf函数库 三角函数 1.角度和弧度转换 2.三角函数和反三角函数 坐标系 物体坐标系 世界坐标系 屏幕坐标系 视口坐标系(左下角 (0,0)右上角(1,1)) 不同坐标系下的相互转换: 向量 向量模长和单位向量 向量的运算的意义 位置+位置 无意义 向量+向量=向量(首尾相连

    2024年02月06日
    浏览(41)
  • 【学习笔记】Unity基础(十)【Unity界面之Scene窗口工具栏】

    转载请注明出处:🔗https://blog.csdn.net/weixin_44013533/article/details/131707918 主要参考: 官方手册 Scene视图 注:本文使用的unity版本是2021.3.25f Scene 视图是正在创建的世界的交互式视图。Scene 视图可用于选择和定位景物、角色、摄像机、光源和所有其他类型的游戏对象。 本节将详细

    2024年02月06日
    浏览(45)
  • 【UnityShader入门精要学习笔记】第三章(1)Unity Shader介绍

    本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 + 个人批注 项目源码 一堆新手会犯的错误 潜在的太监断更,有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 从本章节开始我们要学习Shader相关的知识了,诸位看客可能有的

    2024年02月02日
    浏览(66)
  • Unity中DOTween文本逐字显示,DOTween动画播放

     Text文本逐字显示 Text文本匀速逐字显示  DOTween动画

    2024年02月16日
    浏览(59)
  • Unity——DoTween插件

    using DG.Tween DoTween的一些用法 移动动画 旋转   尺寸 ` 震动 材质 摄像机 Text 队列 设置参数 运动曲线 缓动函数速查表 (xuanfengge.com) 回调函数 控制函数 获取数据 携程 路劲动画 using System.Linq;  

    2024年02月11日
    浏览(43)
  • Unity DOTween

    目录 1.主要方法 2.单个动画(Tween) 3.回调方法 4.设置参数 4.序(队)列动画(Sequence) 3. To方法 5.参考链接 1.以DO开头的方法:就是补间动画的方法。例如:transform.DOMoveX(100,1) 2.以Set开头的方法:设置补间动画的一些属性。例如:myTween.SetLoops(4, LoopType.Yoyo) 3.以On开头的方法:补间动画

    2024年02月01日
    浏览(34)
  • Unity学习笔记(零基础到就业)|Chapter03:C#核心

    这系列的学习笔记主要是根据唐老狮的unity实战路线课程整理的,加入了自己的一些补充和理解,该课程涉及的知识内容非常多,我并未学完,而是根据就业需求挑选学习的,也对后续框架部分进行了一些修改,希望能通过整理并时常阅读这些笔记巩固开发知识,也希望能跟

    2024年02月20日
    浏览(54)
  • 【学习笔记】Unity基础(七)【uGUI基础、利用render Texture实现小地图功能】

    转载请注明出处:🔗https://blog.csdn.net/weixin_44013533/article/details/130808689 本篇基本是大纲性质,参考价值不大,只有最后一小节“利用render Texture实现小地图功能”花了点时间,可以看看,不过也用到了上面的canvas、UI image等知识、以及input等脚本功能,也算一个小练手吧 倒是

    2024年02月08日
    浏览(47)
  • 【UnityShader入门精要学习笔记】第六章(1)Unity中的基础光照

    本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 + 个人批注 项目源码 一堆新手会犯的错误 潜在的太监断更,有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 一个物体为什么看起来是红色的?从物理上解释是因为这个物体

    2024年03月22日
    浏览(49)
  • unity --- DoTween插件安装与使用

    目录 一.简介  1.1 插件下载 1.2 官方文档 二.导入和设置 三.示例代码 1 循环动画:SetLoops(-1 , loopType ) 2. 动画循环次数:SetLoops( count ) 3. 动画事件监听与回调:OnStart OnComplete 4. 动画延迟回调:SetDelay 5. 动画自定义更新回调:OnUpdate 6. 动画路径回调:OnWayPointChange 7. 动画循环

    2024年02月11日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包