unity知识点 专项二 DoTween动画

2024-05-27 22:28

本文主要是介绍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组件

这篇关于unity知识点 专项二 DoTween动画的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

嵌入式软件工程师应聘知识点

嵌入式软件工程师应聘 修改浏览权限 | 删除 数据结构(C语言)部分常考的知识点: 1、局部变量能、全局变量和静态变量 2、堆和栈 3、Const、volatile、define、typedef的用途 4、链表(比如链表的插入、删除和排序) 5、排序(考查冒泡法的较多) 6、可重入函数 、malloc函数 7、指针(常考函数指针,函数指针,数组指针,指针数组和

数据库期末复习知识点

A卷 1. 选择题(30') 2. 判断范式(10') 判断到第三范式 3. 程序填空(20') 4. 分析填空(15') 5. 写SQL(25') 5'一题 恶性 B卷 1. 单选(30') 2. 填空 (20') 3. 程序填空(20') 4. 写SQL(30') 知识点 第一章 数据库管理系统(DBMS)  主要功能 数据定义功能 (DDL, 数据定义语

【Unity Shader】片段着色器(Fragment Shader)的概念及其使用方法

在Unity和图形编程中,片段着色器(Fragment Shader)是渲染管线中的一个阶段,负责计算屏幕上每个像素(片段)的颜色和特性。片段着色器通常在顶点着色器和任何几何处理之后运行,是决定最终像素颜色的关键步骤。 Fragment Shader的概念: 像素处理:片段着色器处理经过顶点着色器和几何着色器处理后,映射到屏幕空间的像素。颜色计算:它计算每个像素的颜色值,这可能包括纹理采样、光

【Unity Shader】Alpha Blend(Alpha混合)的概念及其使用示例

在Unity和图形编程中,Alpha Blend(也称为Alpha混合)是一种用于处理像素透明度的技术。它允许像素与背景像素融合,从而实现透明或半透明的效果。Alpha Blend在渲染具有透明度的物体(如窗户、玻璃、水、雾等)时非常重要。 Alpha Blend的概念: Alpha值:Alpha值是一个介于0(完全透明)和1(完全不透明)的数值,用于表示像素的透明度。混合模式:Alpha B

ArkTS开发系列之导航 (2.7动画)

上篇回顾: ArkTS开发系列之导航 (2.6 图形) 本篇内容:动画的学习使用 一、 知识储备 1. 布局更新动画 包含显式动画(animateTo)和属性动画(animation) 动画类型名称特点显式动画闭包内的变化都会触发动画执行, 可以做较复杂的动画属性动画属性变化时触发动画执行, 设置简单 说白了,显示动画就是靠闭包事件触发,属性动画是挂在组件身上的属性变化触发 显式动画

【教师资格证考试综合素质——法律专项】学生伤害事故处理办法以及未成人犯罪法笔记相关练习题

目录 《学生伤害事故处理办法》 第一章 总 则 第二章 事故与责任 (谁有错,谁担责) 第三章  事故处理程序 第四章 事故损害的赔偿 第五章 事故责任者的处理 第六章 附 则 《中华人民共和国预防未成人犯罪法》 第一章 总 则 第二章 预防犯罪的教育 第三章 对不良行为的干预 第四章 对严重不良行为的矫治 第五章 对重新犯罪的预防 第六章法律责任 第七章 附 则

Android 扇形网络控件 - 无网络视图(动画)

前言 一般在APP没有网络的情况下,我们都会用一个无网络的提示图标,在提示方面为了统一app的情况,我们一般使用简单的提示图标,偶尔只需要改变一下图标的颜色就一举两得,而不需要让PS来换一次颜色。当然app有图标特殊要求的就另当别论了。 效果图 当你第一眼看到这样的图,二话不说直接让UI给你切一张图标来的快对吧,我其实开始也是这么想的,但是到了做的app越来越多的时候,你就会发现就算是用

Unity Meta Quest 开发:关闭 MR 应用的安全边界

社区链接: SpatialXR社区:完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子 📕教程说明 这期教程我将介绍如何在应用中关闭 Quest 系统的安全边界。 视频讲解: https://www.bilibili.com/video/BV1Gm42157Zi 在 Unity 中导入 Meta XR SDK,进行环境配置后,打开 Assets > Plugins > An

408计算机网络知识点——第四章 网络层

文章目录 网络层概述分组转发和路由选择分组转发路由选择 网络层向上层提供的两种服务面向连接的虚电路服务无连接的数据报服务 网际协议IP网际协议IP异构网络互连IPv4地址及其编址方法IPv4地址概述IPv4地址的表示方法分类编址A类地址B类地址C类地址特殊地址 划分子网子网掩码默认子网掩码 无分类编址地址掩码CIDR地址块路由聚合 IPv4地址的应用规划采用定长的子网掩码进行子网划分采用

GUI (图形界面)知识点

一:组件知识点 JTextField:    作用:  定义文本域,只支持单行输入。                使用:  定义文本域:  JTextField jtf=new JTextField(20); //20为列数(列:近似平均字符宽度,它与平台有关)                        获取值:      String jtfText=jtf.getText();