当前位置: 首页 > news >正文

【Unity2D 2022:C#Script】DoTween插件的使用

一、插件介绍

        DOTween 是一个快速高效完全类型安全的 Unity 面向对象的动画引擎,针对 C# 用户进行了优化,免费开源,具有大量高级功能

二、插件的下载

1. DoTween官网:DOTween (HOTween v2)

2. DoTween下载:

        (1)点击DOWNLOAD界面

        (2)点击DownLoad按钮下载

3. DoTween导入:

        (1)解压DoTween压缩包

        (2)将DoTween文件夹拖入Unity的Assets文件夹

三、插件的使用

1. Unity准备

        (1)新建Image游戏物体

        (2)新建Test.cs脚本文件

        (3)为Image游戏物体挂载Test脚本文件

2. DoTween API

        (1)DoTween的静态方法:DOTween.To()(函数重载过多,这里不详细展示形参列表):将某个属性在一定时间内平滑过渡到目标值(这里用图片颜色举例)

using UnityEngine;
using UnityEngine.UI;
using DG.Tweening; // 导入DoTween库public class TestDoTween : MonoBehaviour
{private Image image; // 创建Image对象void Start(){image = GetComponent<Image>(); // 获取Image组件DOTween.To(() => image.color, toColor => image.color = toColor, new Color(0, 0, 0, 0), 2f); // DoTween的静态方法}
}

                 详解:第一个参数:() => image.color是一个lambda表达式,用来获取某个属性。()是一个匿名函数,()内无参数,代表该匿名函数不需要接收参数;image.color是该匿名函数的返回值,因为该匿名函数的函数体内只有一条语句,且该语句是retuen语句,所以同时省略大括号、return和";";第一个参数的完整形式为:() => { return image.color; };第二个参数:toColor => image.color = toColor也是一个lambda表达式,用来改变某个属性的值。toColor是该匿名函数的参数,代表下一帧该值变化到何值,但因为只有一个参数,所以省略参数列表的括号,image=toColor是该匿名函数的函数体的一条语句,因为函数体只有一条语句,所以省略大括号和";",第二个参数的完整形式为:(toColor) => { image.color = toColor; };第三个参数:new Color(0, 0, 0, 0)是一个Color对象,是属性变化的最终值。前三个数是RGB颜色值,(0, 0, 0)代表黑色;第四个数代表透明度alpha,0是全透明,1是不透明;第四个参数:2f是一个浮点数,代表该动画持续的总时间。

        (2)DoTween直接作用于transform组件:transform.LocalMoveX(float distance, float time)、transform.LocalMoveY(float distance, float time)、transform.LocalMoveZ(float distance, float time):将某个游戏物体在一定时间内向指定坐标轴移动到指定值

using UnityEngine;
using UnityEngine.UI;
using DG.Tweening; // 导入DoTween库public class TestDoTween : MonoBehaviour
{void Start(){transform.DOLocalMoveY(10f, 2f); // DoTween直接作用于transform组件}
}

        (3)使用Tween对象接收动画:使用Tween对象接收动画,方便对动画执行各种操作:        tween.PlayForward()、tween.PlayBackwards():动画正播、倒播

using UnityEngine;
using UnityEngine.UI;
using DG.Tweening; // 导入DoTween库public class TestDoTween : MonoBehaviour
{void Start(){Tween tween = transform.DOLocalMoveX(10f, 2f); // 为Tween对象赋值tween.PlayForward(); // 正序播放动画}
}

                 注意:①动画不可以直接倒播,必须先正播再倒播;同时也不能连续正播或者连续倒播。②为Tween赋值也会播放动画,若不想播放动画可以使用tween.Pause()函数暂停播放动画。③tween.Play()方法也是正序播放动画,但只能被调用一次。

        (4)Tween的多次使用:

using UnityEngine;
using UnityEngine.UI;
using DG.Tweening; // 导入DoTween库public class TestDoTween : MonoBehaviour
{void Start(){Tween tween = transform.DOLocalMoveX(10f, 2f); // 为Tween对象赋值tween.Pause(); // 暂停播放tween.SetAutoKill(false); // 设置自动销毁为false}void Update(){if(Input.GetMouseButtonDown(0)) { // 当鼠标左键按下时maskTween.PlayForward(); // 正序播放动画} else if(Input.GetMouseButtonDown(1)) { // 当鼠标右键按下时maskTween.PlayBackwards(); // 倒序播放动画}}
}

                 注意:tween对象初始的AutoKill属性为true,即播放一次后自动销毁该tween对象,需要多次播放时,需要设置SetAutoKill(false)

        (5)Tween的事件回调:用于在动画播放完成后执行其他逻辑

using UnityEngine;
using UnityEngine.UI;
using DG.Tweening; // 导入DoTween库public class TestDoTween : MonoBehaviour
{void Start(){Tween tween = transform.DOLocalMoveX(10f, 2f); // 为Tween对象赋值tween.OnComplete(CompleteMethod); // tween动画播放完毕后调用CompleteMethod()方法}private void CompleteMethod(){DOTween.To(() => maskImage.color, (toColor) => maskImage.color = toColor, new Color(0, 0, 0, 0), 2f);}
}

        (6)Tween的缓动函数:使用不同速率播放动画

using UnityEngine;
using UnityEngine.UI;
using DG.Tweening; // 导入DoTween库public class TestDoTween : MonoBehaviour
{void Start(){Tween tween = transform.DOLocalMoveX(10f, 2f); // 为Tween对象赋值tween.SetEase(Ease.InQuint); // 设置Tween动画的缓动效果}
}

                Tween的所有缓动函数详见:tween的缓动效果大全和使用方法_quadout-CSDN博客

        (7)Tween的循环使用:循环播放动画:tween.SetLoops(-1, LoopType.Incremental)、tween.SetLoops(-1, LoopType.Restart)、tween.SetLoops(-1, LoopType.Yoyo):重复叠加播放、重复正播、重复倒播

using UnityEngine;
using UnityEngine.UI;
using DG.Tweening; // 导入DoTween库public class TestDoTween : MonoBehaviour
{void Start(){Tween tween = transform.DOLocalMoveX(10f, 2f); // 为Tween对象赋值tween.SetLoops(-1, LoopType.Incremental); // 重复叠加播放tween.SetLoops(-1, LoopType.Restart); // 重复正播tween.SetLoops(-1, LoopType.Yoyo); // 重复正播倒播}
}

        本章完。感谢阅读!

相关文章:

【Unity2D 2022:C#Script】DoTween插件的使用

一、插件介绍 DOTween 是一个快速、高效、完全类型安全的 Unity 面向对象的动画引擎&#xff0c;针对 C# 用户进行了优化&#xff0c;免费和开源&#xff0c;具有大量高级功能 二、插件的下载 1. DoTween官网&#xff1a;DOTween (HOTween v2) 2. DoTween下载&#xff1a; …...

【Docker】ubuntu中 Docker的使用

之前记录了 docker的安装 【环境配置】ubuntu中 Docker的安装&#xff1b; 本篇博客记录Dockerfile的示例&#xff0c;docker 的使用&#xff0c;包括镜像的构建、容器的启动、docker compose的使用等。   当安装好后&#xff0c;可查看docker的基本信息 docker info ## 查…...

【数据结构篇】时间复杂度

一.数据结构前言 1.1 数据结构的概念 数据结构(Data Structure)是计算机存储、组织数据的⽅式&#xff0c;指相互之间存在⼀种或多种特定关系的数 据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤&#xff0c;所以我们要学各式各样的数据结构&#xff0c; 如&#xff1a…...

linux 环境安装 dlib 的 gpu 版本

默认使用 pip 安装的 dlib 是不使用 gpu 的 在国内社区用百度查如何安装 gpu 版本的 dlib 感觉信息都不太对&#xff0c;都是说要源码编译还有点复杂 还需要自己安装 cuda 相关的包啥的&#xff0c;看着就头大 于是想到这个因该 conda 自己就支持了吧&#xff0c;然后查了一下…...

springboot集成钉钉,发送钉钉日报

目录 1.说明 2.示例 3.总结 1.说明 学习地图 - 钉钉开放平台 在钉钉开放文档中可以查看有关日志相关的api&#xff0c;主要用到以下几个api&#xff1a; ①获取模板详情 ②获取用户发送日志的概要信息 ③获取日志接收人员列表 ④创建日志 发送日志时需要根据模板规定日志…...

【机器学习】自定义数据集 使用scikit-learn中svm的包实现svm分类

一、支持向量机(support vector machines. &#xff0c;SVM)概念 1. SVM 绪论 支持向量机&#xff08;SVM&#xff09;的核心思想是找到一个最优的超平面&#xff0c;将不同类别的数据点分开。SVM 的关键特点包括&#xff1a; ① 分类与回归&#xff1a; SVM 可以用于分类&a…...

快速提升网站收录:利用网站历史数据

本文转自&#xff1a;百万收录网 原文链接&#xff1a;https://www.baiwanshoulu.com/38.html 利用网站历史数据可以有效提升网站的收录速度&#xff0c;以下是一些具体的策略和方法&#xff1a; 一、理解网站历史数据的重要性 网站历史数据记录了网站过去的运营情况、用户行…...

【Git】初识Git Git基本操作详解

文章目录 学习目标Ⅰ. 初始 Git&#x1f4a5;注意事项 Ⅱ. Git 安装Linux-centos安装Git Ⅲ. Git基本操作一、创建git本地仓库 -- git init二、配置 Git -- git config三、认识工作区、暂存区、版本库① 工作区② 暂存区③ 版本库④ 三者的关系 四、添加、提交更改、查看提交日…...

Python NumPy(11):NumPy 排序、条件筛选函数

1 NumPy 排序、条件筛选函数 NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法&#xff0c;每个排序算法的特征在于执行速度&#xff0c;最坏情况性能&#xff0c;所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。 种类速度最坏情况工作空间稳定性…...

AJAX综合案例——图书管理

黑马程序员视频地址&#xff1a; AJAX-Day02-10.案例_图书管理AJAX-Day02-10.案例_图书管理_总结_V1.0是黑马程序员前端AJAX入门到实战全套教程&#xff0c;包含学前端框架必会的&#xff08;ajaxnode.jswebpackgit&#xff09;&#xff0c;一套全覆盖的第25集视频&#xff0c…...

JDK自带工具解析与生产问题定位指南(一)

1. 引言 Java开发工具包&#xff08;JDK&#xff09;内置了强大的诊断工具集&#xff0c;用于监控、分析和调试Java应用程序。这些工具涵盖了从进程管理、内存分析到性能监控的各个方面。本文将介绍一些最常用的Java开发工具&#xff0c;包括jps、jmap、jstat、jcmd、jstack、…...

FPGA 使用 CLOCK_DEDICATED_ROUTE 约束

使用 CLOCK_DEDICATED_ROUTE 约束 CLOCK_DEDICATED_ROUTE 约束通常在从一个时钟区域中的时钟缓存驱动到另一个时钟区域中的 MMCM 或 PLL 时使 用。默认情况下&#xff0c; CLOCK_DEDICATED_ROUTE 约束设置为 TRUE &#xff0c;并且缓存 /MMCM 或 PLL 对必须布局在相同…...

《解锁AI黑科技:数据分类聚类与可视化》

在当今数字化时代&#xff0c;数据如潮水般涌来&#xff0c;如何从海量数据中提取有价值的信息&#xff0c;成为了众多领域面临的关键挑战。人工智能&#xff08;AI&#xff09;技术的崛起&#xff0c;为解决这一难题提供了强大的工具。其中&#xff0c;能够实现数据分类与聚类…...

Java小白入门教程:Object

目录 一、定义 二、作用 三、使用场景 四、语法以及示例 1、创建Object类型的对象 2、使用 toString()方法 3、使用 equals()方法 4、使用 hashCode()方法 5、使用 getClass()方法 6、使用 clone()方法 7、使用 finalize()方法 一、定义 在Java中&#xff0c; object…...

记6(人工神经网络

目录 1、M-P神经元2、感知机3、Delta法则4、前馈型神经网络&#xff08;Feedforward Neural Networks&#xff09;5、鸢尾花数据集——单层前馈型神经网络&#xff1a;6、多层神经网络&#xff1a;增加隐含层7、实现异或运算&#xff08;01、10为1,00、11为0&#xff09;8、线性…...

stm32硬件实现与w25qxx通信

使用的型号为stm32f103c8t6与w25q64。 STM32CubeMX配置与引脚衔接 根据stm32f103c8t6引脚手册&#xff0c;采用B12-B15四个引脚与W25Q64连接&#xff0c;实现SPI通信。 W25Q64SCK&#xff08;CLK&#xff09;PB13MOSI&#xff08;DI&#xff09;PB15MISO(DO)PB14CS&#xff08…...

编程题-最接近的三数之和

题目&#xff1a; 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 解法一&#xff08;排序双指针&#xff09;&#xff1a; 题目要求找…...

索引的底层数据结构、B+树的结构、为什么InnoDB使用B+树而不是B树呢

索引的底层数据结构 MySQL中常用的是Hash索引和B树索引 Hash索引&#xff1a;基于哈希表实现的&#xff0c;查找速度非常快&#xff0c;但是由于哈希表的特性&#xff0c;不支持范围查找和排序&#xff0c;在MySQL中支持的哈希索引是自适应的&#xff0c;不能手动创建 B树的…...

【工欲善其事】利用 DeepSeek 实现复杂 Git 操作:从原项目剥离出子版本树并同步到新的代码库中

文章目录 利用 DeepSeek 实现复杂 Git 操作1 背景介绍2 需求描述3 思路分析4 实现过程4.1 第一次需求确认4.2 第二次需求确认4.3 第三次需求确认4.4 V3 模型&#xff1a;中间结果的处理4.5 方案验证&#xff0c;首战告捷 5 总结复盘 利用 DeepSeek 实现复杂 Git 操作 1 背景介绍…...

网络编程套接字(中)

文章目录 &#x1f34f;简单的TCP网络程序服务端创建套接字服务端绑定服务端监听服务端获取连接服务端处理请求客户端创建套接字客户端连接服务器客户端发起请求服务器测试单执行流服务器的弊端 &#x1f350;多进程版的TCP网络程序捕捉SIGCHLD信号让孙子进程提供服务 &#x1…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...