【Unity常用插件】Dotween插件API详解【一】

2024-04-28 02:28

本文主要是介绍【Unity常用插件】Dotween插件API详解【一】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏UI_Unity专栏

在这里插入图片描述


Dotween


文章目录

    • Dotween
    • 🎶前言
    • 🎶(==1==)Dotween的基础API
    • 🎶(==2==)Dotween的操作API
    • 🎶(==3==)Dotween的实践API
    • 🎶(==4==)Dotween的事件函数
    • ⭐相关文章⭐


🎶前言

Dotween是一个用于Unity游戏引擎的强大的补间动画插件。它提供了许多实用的功能,使开发人员能够轻松地创建各种类型的动画效果,包括平移、缩放、旋转等。Dotween还具有良好的性能和易用性,使开发人员能够快速高效地实现复杂的动画效果。它支持多种补间动画类型和曲线类型,以及多个对象同时进行动画。除了动画效果,Dotween还提供了一些额外的功能,例如循环动画、延迟动画、动画事件回调等。总体而言,Dotween是一个非常有用的工具,可以帮助开发人员在游戏开发中实现各种动画效果。
在这里插入图片描述

  • 那么讲到Dotween呢我们也会联想到itween ,那么它们的区别是什么?

iTween和DOTween是两个常用的动画插件,它们有以下区别:
1. 功能和特性:iTween是一个功能丰富但相对简单的插件,提供了多个预置的动画效果和路径动画功能。而DOTween则是一个功能强大且高度可定制的插件,它允许开发者创建各种复杂的动画效果,包括缓动、路径动画、动画序列等。
2. 性能:DOTween在性能方面表现更好。它使用了一种高度优化的引擎,能够在大量动画同时播放时保持流畅的性能表现。而iTween在处理大量动画时可能会出现性能瓶颈。
3. API和语法:iTween使用一种相对简单的API和语法,适合初学者使用。而DOTween则使用一种更加灵活且面向对象的API,需要一定的编程经验来使用。
4. 平台支持:DOTween支持更多的平台,包括PC、移动设备、主机游戏机等。而iTween的平台支持相对较少。
总体来说,如果你需要一个功能丰富且性能优秀的动画插件,并且对编程有一定的了解,那么DOTween是一个更好的选择。但如果你只需要一些基本的动画效果,并且想要一个简单易用的插件,那么iTween可能更适合你。


🅰️ DoTween


🎶(1Dotween的基础API


前提是引用:using DG.Tweening;

  • DOMove在2s内将目标从当前位置移动到目标位置

transform.DOMove(new Vector3(1, 1, 1), 2);

  • DOMoveX在1s内将目标从当前位置移动到目标位置5

transform.DOMoveX(5, 1);

本地坐标上移动:transform.DOLocalMove

  • DORotate在1s内将目标从当前位置旋转到目标位置

transform.DORotate(new Vector3(0,0,88), 1);

transform.DOLocalRotateQuaternion(new Quaternion(0.1f, 0.1f, 0.1f, 0.1f), 2);————以四元数为目标运动

  • DOTween.To将某点在一定时间内渐变到某点
public  Vector3 myvalue = new Vector3(0,0,0) ;void Start(){//前面两个参数为固定写法DOTween.To(() => myvalue, x => myvalue = x, new      Vector3(10, 10, 10), 2);} 

在这里插入图片描述
本地坐标上旋转:transform.DOLocalRotate

  • From(true) 从距离当前位置6个单位的位置在1s内移动到当前位置

transform.DOMoveX(6,1).From(true );

  • From(fasle) 从第6个单位的位置在1s内移动到当前位置

transform.DOMoveX(6,1).From(flase);

  • DOPlayBackwards ,DOPlayForward 倒放和前放
  void Start(){Tweener tweener = transform.DOMoveX(6,1);//由于DomoveAPI在Start力执行后会自动消除。后续倒放的逻辑获取不到//所以用 补间参数 Tweener来储存其返回值tweener.SetAutoKill(false);//该API为取消自动销毁} void Update(){//按下鼠标左键之后进行倒放if( Input.GetMouseButtonDown(0) ){transform.DOPlayBackwards();}//按下鼠标右键之后进行前放else if( Input .GetMouseButtonDown(1)){transform.DOPlayForward();}}
  • Pause、DOPlay、DORestart
    动画暂停、动画播放、动画重新播放(若用的可视化编辑,需取消AutoKill)

  • DOScale 缩放在2s内变换到目标大小

transform.DOScale(new Vector3(2, 2, 2), 2);

transform.DOScaleX(3, 2);——同上为轴缩放

  • DOlookAt 看向

在给定时间内,平滑的让自身的z轴正方向指向目标点

transform.DOLookAt(new Vector3(0, 0, 0), 2);


🎶(2Dotween的操作API


  • 1.Dotween.Sequence——队列动画_【多个Tween(补间)动画】——在实际的需求中,一个动画一般都包含对多个物体的操作

Dotween.Sequence.Append( 操作)
Append加入的Tween是顺序播放的

在这里插入图片描述

Dotween.Sequence.Insert( 延时的时间 , 操作 )
Insert加入的Tween是并行播放的

在这里插入图片描述

  • 2.三种循坏模式——setLoop(-1 ,LoopType.XX)
    在这里插入图片描述

Yoyo, Restart , Incremental(叠加效果)
分别如下动图所示

在这里插入图片描述在这里插入图片描述在这里插入图片描述


🎶(3Dotween的实践API


  • 屏幕震动——DOShakePosition 一般挂载摄像机上面,有屏幕震动的效果
transform.DOShakePosition(3,2,30);//1.时间 ,2.强度 ,3.次数

可应用在发生碰撞时屏幕抖动

在这里插入图片描述


文本动画相关一般用在UGUI的文本组件上


  • 淡入淡出——DOFade :在6秒内将文字的透明度从0变为1

texts.DOFade(1,6);

  • 显示文字——DOText : 在3秒内逐个显示文字

texts.DOText(“哈喽沃德”,3);
·

  • 颜色渐变——DOColor : 在5秒内将文字颜色变为红色

texts.DOColor(Color.red,5);

  • 频闪,闪红动画—XX.DOFade(0, 1).SetLoops(-1 ,LoopType.Yoyo); 主要挂载在图片上,让其具有频闪的动画效果

texts = GetComponent();
texts.DOFade(0, 1).SetLoops(-1 ,LoopType.Yoyo);
//首先将其1秒内变成透明,然后将其设置为循环动画,-1 为无限循环
//loopType为循环模式,yoyo为像乒乓球一样的循坏效果
在这里插入图片描述


🎶(4Dotween的事件函数


  • 各种情况下的回调函数

OnComplete(TweenCallback 回调)
OnKill(TweenCallback 回调)
OnPlay(TweenCallback 回调)
OnPause(TweenCallback 回调)
OnRewind(TweenCallback 回调)
OnStart(TweenCallback 回调)
OnStepComplete(TweenCallback 回调)
OnUpdate(TweenCallback 回调)
OnWaypointChange(TweenCallback 回调)

动画播放完成事件函数

  • tweener.OnComplete (你的方法);

动画销毁调用事件函数

  • tweener.OnKill (你的方法);

动画播放时调用事件函数(一直调用)

  • tweener.OnPlay (你的方法);

动画暂停时调用事件函数

  • tweener.OnPause (你的方法);

动画重置时调用事件函数

  • tweener.OnRewind (你的方法);

动画开始播放时调用事件函数

  • tweener.OnStart (你的方法);

动画播放时调用事件函数(一次)

  • tweener.OnPlay (你的方法);

⭐相关文章⭐


⭐ 软件设计师高频考点大全⭐

⭐ unity之c#专题篇—系统强基⭐



你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!

这篇关于【Unity常用插件】Dotween插件API详解【一】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942111

相关文章

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

Python装饰器之类装饰器详解

《Python装饰器之类装饰器详解》本文将详细介绍Python中类装饰器的概念、使用方法以及应用场景,并通过一个综合详细的例子展示如何使用类装饰器,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. 引言2. 装饰器的基本概念2.1. 函数装饰器复习2.2 类装饰器的定义和使用3. 类装饰

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Java中的@SneakyThrows注解用法详解

《Java中的@SneakyThrows注解用法详解》:本文主要介绍Java中的@SneakyThrows注解用法的相关资料,Lombok的@SneakyThrows注解简化了Java方法中的异常... 目录前言一、@SneakyThrows 简介1.1 什么是 Lombok?二、@SneakyThrows

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Redis Pipeline(管道) 详解

《RedisPipeline(管道)详解》Pipeline管道是Redis提供的一种批量执行命令的机制,通过将多个命令一次性发送到服务器并统一接收响应,减少网络往返次数(RTT),显著提升执行效率... 目录Redis Pipeline 详解1. Pipeline 的核心概念2. 工作原理与性能提升3. 核