unity知识点 专项二 DoTween动画

一、 动画序列(Sequence)

1.1 动画序列相关api 解释

sequence.Append(Tween tween) // 添加一个动画到序列末尾。
sequence.AppendCallback(TweenCallback callback) // 添加回调函数到序列末尾。
sequence.AppendInterval(float interval) // 添加一段空时间到序列末尾。
sequence.Insert(float atPosition, Tween tween) // 插入一段动画到指定时间。
sequence.InsertCallback(float atPosition, TweenCallback callback) // 插入回调函数到序列指定时间。
sequence.Join(Tween tween) // 插入动画与序列最后一个动画(这里的最后是指最后加入序列而非序列末尾)同时播放。
sequence.Prepend(Tween tween) // 添加一个动画到序列头部。
sequence.PrependCallback(TweenCallback callback) // 添加回调函数到序列头部。
sequence.PrependInterval(float interval) // 添加一段空时间到序列头部。
using UnityEngine;
using DG.Tweening; // 引入命名空间

1.2 事列

private Sequence sequence;void Start()
{sequence = DOTween.Sequence();Tween tween1 = transform.DOMove(new Vector3(2, 2, 2), 2);Tween tween2 = transform.DORotate(new Vector3(45, 45, 45),2);Tween tween3 = transform.DOShakePosition(2);sequence.Append(tween1);sequence.Join(tween2);sequence.AppendInterval(1);sequence.Append(tween3);
}

二 、移动(DOMove)

2.1 api 解释

DOMove(Vector3 to, float duration, bool snapping)
将物体在duration时间内移动到目标位置to
snapping:如果设置为True,tween将平滑地将所有值对齐为整数

世界坐标上移动:transform.DOMove

本地坐标上移动:transform.DOLocalMove

世界坐标的X轴上移动:transform.DOMoveX

本地坐标的X轴上移动:transform.DOLocalMoveX

2.2 例子

using DG.Tweening; //引入命名空间
public class DOTWeenTest : MonoBehaviour
{void Start(){transform.DOMove(new Vector3(4, 3, 0), 3); //脚本物体3秒从当前位置移动到世界坐标(4,3,0)位置}
}

三 、归位(Form)


3.1 api解释

transform.DOMove(from, duration).From();

from相当于做原本的相反操作,原本的DOMove是从自身所在位置往to的位置移动,加上From之后变成从to的位置往自身所在位置移动

3.2 例子

transform.DOMove(new Vector3(2, 2, 0), 1).From();1秒时间从世界坐标(2,2,0)处回到自身当前位置:transform.DOMove(new Vector3(2, 2, 0), 2).From(true);从以自身为原点的坐标系(2,2,0)处回到自身当前位置:

四 、动画正放与倒放

4.1 api解释

Pause();//暂停,防止自动播放
SetAutoKill(false);//关闭动画自动销毁
PlayForward(); //该动画正放
PlayBackwards(); //该动画倒放
SetLoops(N): 循环N次

4.2 例子

using DG.Tweening; //引入命名空间
public class DOTWeenTest : MonoBehaviour
{Tweener twe; //声明一个Tweener对象void Start(){ twe = transform.DOMove(new Vector3(3, 4, 0), 2);//将动画保存在Tweener对象中 twe.Pause();//暂停,防止自动播放  twe.SetAutoKill(false);//关闭动画自动销毁  }//创建两个方法事件,控制前放后倒放public void Forward(){twe.PlayForward(); //该动画正放}public void Back(){twe.PlayBackwards(); //该动画倒放}
}

五、设置动画曲线

5.1 描述

在播放动画的时候,如果没有设置动画播放方式,会默认以先快后慢的方式播放
但是我们可以通过 SetEase 方法设置我们想要的播放方式

5.2 api 解释

5.3 例子

void Start()
{Tweener twe = transform.DOMoveX(5, 2); //3秒时间在世界坐标中,让X轴移动到5的位置twe.SetEase(Ease.InCubic); //由慢到快
}

六、 使用动画改变颜色

6.1 描述

既然让物体移动是通过使用transform来点出DOTWeen的方法,那改变颜色就是让材质组件来调用DOTWeen的方法即可

6.2 api 解释

DOColor(color, time):在time时间内变成color颜色

6.3 例子

void Start()
{Material material = GetComponent<MeshRenderer>().material;material.DOColor(Color.red, 3); //3秒变红
}

七、 动画事件

7.1 api 解释

OnComplete(fun):动画结束后调用fun方法回调

7.2 例子

Material material;
Tweener twe;
void Start()
{material = GetComponent<MeshRenderer>().material;twe = material.DOColor(Color.red, 3); //3秒变红twe.OnComplete(ChangeColour); //动画播放结束时调用
}
void ChangeColour() //变色
{twe = material.DOColor(Color.blue, 2); //2秒变蓝
}

八、文本动画(逐字显示)

8.1 api解释

DOText(txt, time),在time时间内显示txt文本

8.2 例子

void Start(){Text text = GetComponent<Text>();Tweener twe = text.DOText("下面是有奖竞猜:", 2);twe.OnComplete(() =>{text.text = "";text.DOText("富奸老贼是怎么死的?", 2);});}

九 、文本动画(逐渐显示)

9.1 api

DOFade

9.2 例子

void Start()
{Text text = GetComponent<Text>();text.DOFade(1, 2); //2秒时间让A值变为1
}

十、屏幕抖动动画

10.1 api解释

  • DOShakePosition(time, scale):在随机方向震动time时间,振幅为3
  • DOShakeRotation:旋转抖动
  • DOShakeScale:缩放抖动,弹弹弹

10.2 例子

 void Start(){//transform.DOShakePosition(2); //在随机方向震动2秒,幅度默认为1transform.DOShakePosition(2, 3); //在随机方向震动3秒,振幅为3}
或者void Start(){//transform.DOShakePosition(2); //在随机方向震动2秒,幅度默认为1//transform.DOShakePosition(2, 3); //在随机方向震动2秒,振幅为3transform.DOShakePosition(3, new Vector3(0, 2, 0));//只在世界坐标Y轴上震动3秒,振幅为2}

十一、可视化编辑

11.1 为需要做动画的物体添加DoTweenAnimation组件

11.2 选择要做动画的组件

11.3  使用代码控制播放

public DOTweenAnimation a; //在编辑器界面将挂有该组件的物体拖进来
void Start()
{a.DOPlayForward(); 
}

十二、路径编辑器

12.1 场景中创建一个Cube,添加DoTweenPath组件

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

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

相关文章

Revit的特性 - 族类型和族实例、联动更新

Revit 模型的表示方式 Revit 是 Autodesk 推出的一款建筑建模软件&#xff0c;主要应用于建筑信息模型&#xff08;Building Information Modeling&#xff0c;简称BIM&#xff09;领域。Revit发布至今已经超过20年&#xff0c;他的核心理念是以族的概念来表达建筑模型。 在Re…

DOS学习-目录与文件应用操作经典案例-more

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 DOS系统的more命令是一个用于查看文本文件内容的工具。…

【算法专题】双指针算法之 移动零

欢迎来到CILMY23的博客 &#x1f3c6;本篇主题为&#xff1a;双指针算法之移动零 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux &#x1f3c6;感谢观看&#xff0c;支持的…

金融信创生态实验室第三期金融信创优秀解决方案--中间件解决方案

编 者 按 为了更好地落实金融信创生态实验室&#xff08;简称“实验室”&#xff0c;法人机构名称“北京金安信息技术有限责任公司”&#xff09;“共赢桥、适配库、孵化器”定位&#xff0c;打造金融信创公共服务平台&#xff0c;实验室初步形成了金融信创解决方案&#xff0…

IDEA创建Spring Boot项目

1 打开新建项目界面 如图1&#xff0c;打开IDEA&#xff0c;点击菜单栏的File->New->Project&#xff0c;打开新建项目界面。 图1 新建项目 2 填写项目信息 在新建项目界面点击左侧工具栏的Spring Initializr选项&#xff0c;进行Spring Boot项目信息的填写&#xff…

Linux 如何用上次的checkpoint文件dist_train.sh 接着训练【mmdetection】

在Linux环境下&#xff0c;如果你想要用上一次的checkpoint文件继续训练&#xff0c;你可以在你的dist_train.sh脚本中设置--resume_from参数。这个参数指定了checkpoint文件的路径&#xff0c;训练会从该文件的状态继续进行。 例如&#xff0c;如果你的checkpoint文件名为las…

冯 • 诺依曼体系结构和操作系统

目录 冯诺依曼体系结构基于冯诺依曼体系数据的高效流转数据流转示例操作系统(Operator System)操作系统(Operator System)层次结构硬件部分系统软件部分用户部分 管理——先描述&#xff0c;再组织 就一个程序而言&#xff0c;需要在计算机中运行的才能实现它的价值&#xff0c…

视频截图软件,这几款截图神器收好!

在数字化时代&#xff0c;视频内容已经成为我们获取信息、娱乐休闲的主要方式之一。而在观看视频的过程中&#xff0c;我们总会遇到一些想要定格下来的精彩瞬间。此时&#xff0c;一款高效的视频截图软件就显得尤为重要。今天&#xff0c;就为大家推荐几款功能强大、操作简便的…

OpenBayes 教程上新 |全球首个开源的文生视频 DiT 模型!对标 Sora,保姆级 Latte 文生视频使用指南

小朋友不爱背诗怎么办&#xff1f;《千秋诗颂》试试看。 2 月 26 日&#xff0c;中国首部文生视频 AI 系列动画《千秋诗颂》于 CCTV-1 频道正式播出&#xff0c;这部动画由上海人工智能实验室和「央妈」&#xff08;中央广播电视总台&#xff09;强强联手&#xff0c;借助「央视…

OrangePi Kunpeng Pro 开箱测评之一步到喂

前情提要&#xff1a;大家好&#xff0c;我是Samle。有幸接到 CSDN 发来的测评邀请&#xff0c;下面针对 OrangePi Kunpeng Pro 开发板进行一些实践操作&#xff0c;让大家能更好的上手这块板子。 以下内容来自 官方说明 OrangePi Kunpeng Pro采用4核64位处理器AI处理器&#…

JMeter性能测试:命令行执行

1. 环境准备 安装JMeter http://jmeter.apache.org/ 下载最新版本的JMeter 解压下载的压缩包 配置环境变量 为了更方便地从任何目录运行JMeter&#xff0c;将JMeter的bin目录添加到系统环境变量中。 2. 创建测试计划 在执行命令行测试之前&#xff0c;需要创建一个JMete…

宝塔部署纯Vue项目,无后端

1.打包项目 生成一个dist文件夹 2.创建云服务器根目录 3.创建站点 4.上传文件 5.访问

【quarkus系列】构建可执行文件native image

目录 序言为什么选择 Quarkus Native Image&#xff1f;性能优势便捷的云原生部署 搭建项目构建可执行文件方式一&#xff1a;配置GraalVM方式二&#xff1a;容器运行错误示例构建过程分析 创建docker镜像基于可执行文件命令式构建基于dockerfile构建方式一&#xff1a;构建mic…

M功能-open feign的使用-支付系统(四)

target&#xff1a;离开柬埔寨倒计时-219day 这张图片一直是我idea的背景图&#xff0c;分享出来啦… 前言 支付平台使用的是基于springcloud的微服务&#xff0c;服务之间的调用都是使用openfeign&#xff0c;而我们每个服务对外暴露的接口响应都会在外部封装一层code之类的信…

在Bash中解析命令行参数的两种样例脚本

文章目录 问题回答以空格分隔选项和参数以等号分隔选项和参数 参考 问题 假设&#xff0c;我有一个脚本&#xff0c;它会被这样一行调用: ./myscript -vfd ./foo/bar/someFile -o /fizz/someOtherFile或者这个&#xff1a; ./myscript -v -f -d -o /fizz/someOtherFile ./fo…

【NumPy】NumPy实战入门:索引与切片(sort、argsort、searchsorted)详解

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

[NOIP 2014] 寻找道路

[NOIP 2014] 寻找道路 在有向图 G 中&#xff0c;每条边的长度均为 11&#xff0c;现给定起点和终点&#xff0c;请你在图中找一条从起点到终点的路径&#xff0c;该路径满足以下条件&#xff1a; 路径上的所有点的出边所指向的点都直接或间接与终点连通。在满足条件 11 的情…

全局查询筛选器适用场景 以及各场景示例

EF Core中的全局查询筛选器&#xff08;Global Query Filters&#xff09;是一种强大的功能&#xff0c;可以在实体框架的DbContext级别为特定的EntityType设置默认的过滤条件。这些筛选器自动应用于所有涉及到相关实体的LINQ查询中&#xff0c;无论是直接查询还是通过Include或…

统计计算四|蒙特卡罗方法(Monte Carlo Method)

系列文章目录 统计计算一|非线性方程的求解 统计计算二|EM算法&#xff08;Expectation-Maximization Algorithm&#xff0c;期望最大化算法&#xff09; 统计计算三|Cases for EM 文章目录 系列文章目录一、基本概念&#xff08;一&#xff09;估算 π \pi π&#xff08;二&…

【设计模式】JAVA Design Patterns——Commander(指挥官模式)

&#x1f50d;目的 用于处理执行分布式事务时可能遇到的所有问题。 &#x1f50d;解释 处理分布式事务很棘手&#xff0c;但如果我们不仔细处理&#xff0c;可能会带来不想要的后果。假设我们有一个电子商务网站&#xff0c;它有一个支付微服务和一个运输微服务。如果当前运输…