【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#专题篇—系统强基⭐



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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10万字208道Java经典面试题总结(2024修订版)- JavaWeb篇

🍅 作者简介:哪吒,CSDN2021博客之星亚军🏆、新星计划导师✌、博客专家💪 🍅 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师 🍅 技术交流:定期更新…

LabVIEW飞机机电系统综合测试平台

LabVIEW飞机机电系统综合测试平台 在现代航空领域,机电系统的准确性与可靠性对飞行安全至关重要。针对飞机机电管理计算机(UMC)复杂度增加、测试覆盖率低、效率不高等问题,开发了一套基于LabVIEW的机电系统综合测试平台。平台通过…

常用设计模式简介

设计模式是在软件设计中常见问题的通用可重用解决方案。它们分为三大类:创建型模式、结构型模式和行为型模式。下面是这三类中一些常用设计模式的概述: 创建型模式 单例模式(Singleton) 保证一个类只有一个实例,并提供…

内网穿透及公网解析说明

内网穿透释义: 自己在本地搭建服务器时,本地网络有多种环境,如没有公网IP、没有路由映射权限、网络被NAT转发等情况。在需要外网访问内网服务器资源时,就需要用到内网穿透。内网穿透,即内网映射,内网IP地址…

PotatoPie 4.0 实验教程(21) —— FPGA实现摄像头图像二值化(RGB2Gray2Bin)

PotatoPie 4.0开发板教程目录(2024/04/21) 为什么要进行图像的二值化? 当我们处理图像时,常常需要将其转换为二值图像。这是因为在很多应用中,我们只对图像中的某些特定部分感兴趣,而不需要考虑所有像素的…

PostgreSQL的扩展(extensions)-常用的扩展之pgAudit

PostgreSQL的扩展(extensions)-常用的扩展之pgAudit pgAudit 是一个 PostgreSQL 的扩展,它提供了一种方式来生成详尽的审计日志。这对于需要遵守特定监管要求的企业来说是非常重要的,比如那些必须符合 HIPAA、SOX、PCI DSS 等标准…

如何进行域名解析?如何清理DNS缓存?(附源码)

目录 1、什么是域名? 2、为什么使用域名? 3、域名解析的完整流程 4、调用gethostbyname系统接口将域名解析成IP地址 5、为什么需要清理系统DNS缓存? 6、使用cmd命令清理DNS缓存 7、通过代码去清除系统DNS缓存 C软件异常排查从入门到精…

PeLK: 大卷积核强势回归,高达101 × 101,提出了外围卷积

paper:https://arxiv.org/pdf/2403.07589 code:暂无 目录 0. 摘要 1. 引言 2. 相关工作 2.1. Large Kernel Convolutional Networks 2.2. Peripheral Vision for Machine Learning 3. 密集卷积优于条纹卷积 4. 参数高效的大核卷积神经网络 4.1. …

粒子群算法与优化储能策略python实践

粒子群优化算法(Particle Swarm Optimization,简称PSO), 是1995年J. Kennedy博士和R. C. Eberhart博士一起提出的,它是源于对鸟群捕食行为的研究。粒子群优化算法的基本核心是利用群体中的个体对信息的共享从而使得整个群体的运动…

基于 Redis 发布订阅实现服务注册与发现

写在前面 其实很少有公司会使用 Redis 来实现服务注册与发现,通常是ETCD、NACOS、ZOOKEEPER等等,但是也不妨碍我们了解。本文会先介绍 Redis 的发布/订阅模式,接着基于这个模式实现服务注册与发现。 Redis发布订阅流程图: Red…

云备份项目->配置环境

升级gcc到7.3版本 sudo yum install centos-release-scl-rh centos-release-scl sudo yum install devtoolset-7-gcc devtoolset-7-gcc-c source /opt/rh/devtoolset-7/enable echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc 安装Jsoncpp库 sud…

CORBA须知(Common Object Request Broker Architecture,通用对象请求代理架构)

1. 定义: CORBA(Common Object Request Broker Architecture,通用对象请求代理架构),是由OMG(Object Management Group,對象管理組) 制定和控制的软件构建标准。 这个架构使得不同…

MyBatis面试题总结,详细(2024最新)

面试必须要看看 1、MyBatis 中的一级缓存和二级缓存是什么?它们的区别是什么? MyBatis 中的一级缓存是指 SqlSession 对象内部的缓存,它是默认开启的。一级缓存的生命周期是与 SqlSession 对象绑定的,当 SqlSession 关闭时&#…

OpenMesh 网格主曲率计算

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 OpenMesh中并没有为我们提供网格主曲率的相关计算接口,但其提供了平均曲率与高斯曲率的计算,我们都知道平均曲率: H = K 1 + K 2 H = K_1+K2 H

【uni-app】uni-app官方自带图标的使用方法

1、图标地址&#xff1a; https://hellouniapp.dcloud.net.cn/pages/extUI/icons/icons 2、图标用法 icon | uni-app官网 3、实例 <uni-icons type"left" color"white" :size"23" /> <view class"topBar"><view s…

Linux--进程控制(2)--进程的程序替换(夺舍)

目录 进程的程序替换 0.相关函数 1.先看现象 2.解释原理 3.将代码改成多进程版 4.使用其它的替换函数&#xff0c;并且认识函数参数的含义 5.其它 进程的程序替换 0.相关函数 关于进程替换我们需要了解的6个函数&#xff1a; 函数解释&#xff1a; 这些函数如果调用成功则…

react脚手架创建项目,配置别名(alias)

React脚手架项目使用 react-scripts 封装了webpack配置&#xff0c;所以我们需要通过 config-overrides 或者 eject 的方式来修改webpack配置 可以的话 &#xff0c;创建项目的时候可以使用vite &#xff0c;我这是老项目屎山 懒得迁移 &#xff0c;但还得改呀 ## 1. 安装依…

通过filebeat实现对docker服务的通用日志收集

平台 依赖 linux docker docker-compose 或者 docker compose 镜像 docker.elastic.co/beats/filebeat:8.12.2 docker.elastic.co/beats/kibana:8.12.2 docker.elastic.co/beats/elasticsearch:8.12.2 正文 背景 对于有自建机房的公司来说&#xff0c;如果公司的运维技术…

Stable Diffusion使用ControlNet:IP-Adapter实现图片风格迁移

IP-Adapter 全称是 Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models&#xff08;文本到图像扩散模型的文本兼容图像提示适配器&#xff09;&#xff0c;是腾讯研究院出品的一个新的ControlNet模型&#xff0c;旨在使预训练的文本到图像扩散模型能够生…

【06】JAVASE-数组讲解【从零开始学JAVA】

Java零基础系列课程-JavaSE基础篇 Lecture&#xff1a;波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。…