Unity DOTween插件常用方法(一)

2024-02-01 13:52

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

文章目录

    • 1.1 控制Api
    • 1.2 动画Api

1.1 控制Api

  1. DOKill

  DOKill表示停止该物体上所有的Tween动画。DOTween可以同时运行多个Tween,如果需要停止所有正在运行的Tween,可以使用这个方法;

还有一种使用场景,即反复打开某一视图,而该视图存在显示动画,如果不先杀死原有动画再执行显示动画可能会导致显示错误、报错;

transform.DOKill();
  1. SetUpdate

默认情况下,Tween 在FixedUpdate中更新,可以使用 SetUpdate(true)将其更改为在Update中更新。

示例:

tween.SetUpdate(true);
  1. Play

  通过调用Play()方法,可以让Tween动画开始播放。如果Tween动画处于暂停、结束状态,也可以通过调用Play()方法将其恢复播放。需要注意的是,如果Tween动画已经处于播放状态,再次调用Play()方法不会产生任何效果。

示例:

tween.Play();
  1. Pause

通过调用Pause()方法,可以让Tween动画暂停播放;

示例:

tween.Pause();
  1. TogglePause

切换Tween动画的暂停状态。如果Tween正在播放,则暂停它;如果Tween已暂停,则继续播放它。

示例:

tween.TogglePause();
  1. Restart

重新启动Tween动画,将其重置到初始状态并重新播放。

示例:

tween.Restart();
  1. Complete

立即完成Tween动画,并将Tween对象移动到结束位置。

示例:

tween.Complete();
  1. Rewind

倒回Tween动画,将Tween对象返回到开始位置。

示例:

tween.Rewind();
  1. From

动画补间;
参数 :

  • isRelative:为true,传入的就是偏移量,即当前坐标 + 传入值 = 目标值,为falese,传入的就是目标值,即传入值 = 目标值

示例:

//2 秒内,移动到原点的 X 坐标偏移 5 的位置
transform.DOMoveX(5f, 2f).From(true).Play();
  1. SetSpeedBased

Tween动画设置为基于速度的模式,在不同的时间间隔内以相同的速度播放,而不是固定的时间间隔。

示例:

// 创建 Tween 对象并设置为基于速度的模式
transform.DOMoveX(5f, 2f).SetSpeedBased(true).Play();

1.2 动画Api

  1. DOTween.To

DOTween.To()用于创建一个Tween动画,它可以对一个值(如浮点数或颜色)进行补间动画。

示例:

Vector3 targetPosition = new Vector3(10f, 10f, 10f);
float duration = 1f;
//修改的属性:transform.position
//修改的值:targetPosition
//时间:duration
DOTween.To(() => transform.position, x => transform.position = x, targetPosition, duration);
  1. DOMove

DOMove()用于将物体平滑地移动到目标位置(世界坐标);

DOMoveX()、DOMoveY()、DOMoveZ():与DOMove()不同的是这三个方法只对某一条轴线进行移动;

示例:

//在 1 秒内将物体移动到世界坐标(1, 1, 1)的位置
transform.DOMove(new Vector3(1, 1, 1), 1);
//在 1 秒内将物体移动到X轴世界坐标 1 的位置
transform.DOMoveX(1, 1);
  1. DOLocalMove

DOLocalMove()用于将物体平滑地移动到目标位置(本地坐标);

DOLocalMoveX()、DOLocalMoveY()、DOLocalMoveZ():同样的DOLocalMove也可以对每一个轴进行单独操作;

示例:

//在 1 秒内将物体移动到本地坐标(1, 1, 1)的位置
rectTransform.DOLocalMove(new Vector3(1, 1, 1), 1);
//在 1 秒内将物体移动到X轴本地坐标 1 的位置
rectTransform.DOLocalMoveX(1, 1);
  1. DORotateDORotateQuaternion
  • DORotate 用于对物体进行欧拉角旋转动画操作。你可以使用它来让物体在指定的时间内平滑地从当前欧拉角旋转到目标欧拉角;
  • DORotateQuaternion 则是用于对物体进行四元数旋转动画操作。与 DORotate 不同的是,它接受一个目标旋转的四元数作为参数,可以让你更加灵活地控制物体的旋转变换;
// 使用 DORotate 方法在 2 秒内将物体绕 Y 轴旋转 180 度
transform.DORotate(new Vector3(0, 180, 0), 2f);// 定义一个目标旋转的四元数
Quaternion targetRotation = Quaternion.Euler(0, 90, 0);
// 使用 DORotateQuaternion 方法在 2 秒内将物体绕 Y 轴旋转 90 度
transform.DORotateQuaternion(targetRotation, 2f);
  1. DOShake

DOShakePosition实现对象的震动位移动画效果;

DOShakeRotation实现对象的震动旋转动画效果;

DOShakeScale 实现对象缩放震动动画效果;

参数:

  • duration:动画的持续时间,表示从开始到结束所需的时间长度。
  • strength:震动的强度,表示物体缩放的最大范围。
  • vibrato:震动的频率,表示物体缩放的次数。
  • randomness:随机性,可以增加震动的不规则性,表示每次震动缩放的大小在 -randomness 到 randomness 之间。
  • snapping:是否启用对齐到像素网格,设置为 true 可以使缩放更加流畅。

示例:

// 使对象在持续时间为 1 秒的动画中进行震动位移,位移的强度为 (10, 10, 10),位移的次数为 10 次,每次震动的位移随机在 -180 到 180 之间
transform.DOShakePosition(1f, new Vector3(10, 10, 10), 10, 180, false);
  1. DOText

DOText 方法可以应用于 Text 组件,以在给定的持续时间内逐步改变文本的内容。它接受以下参数:

  • text:目标文本,即最终要显示的文本。

  • duration:动画的持续时间,即文本逐步改变的时间长度。

  • richTextEnabled:指定是否启用富文本支持,如果启用,则可以使用 HTML 标签来设置文本样式。

  • scrambleMode:混淆模式,表示文本逐步改变时的动画效果,可以是 None、All、Uppercase、Lowercase 或 Numerals。

ScrambleMode.None:不进行混淆,文本逐步改变时保持原样。这是默认的混淆模式。

ScrambleMode.All:所有字符都会被随机顺序地混淆,然后逐步改变为目标文本。

ScrambleMode.Uppercase:所有字母字符(a-z)都会被随机顺序地混淆,然后逐步改变为目标文本中对应的大写字母。

ScrambleMode.Lowercase:所有字母字符(A-Z)都会被随机顺序地混淆,然后逐步改变为目标文本中对应的小写字母。

ScrambleMode.Numerals:所有数字字符(0-9)都会被随机顺序地混淆,然后逐步改变为目标文本中对应的数字。

  • scrambleEase:混淆缓动,表示混淆模式的动画缓动类型;

  • scrambleEaseOvershoot:用于调整混淆动画的缓动超调量参数。缓动超调量控制了在动画过程中的缓动效果是否超过了目标值,从而产生一种超过目标值后再回到目标值的弹簧效果。缓动超调量为正数时,会导致动画在结束时超过目标值然后回弹;而缓动超调量为负数时,会导致动画在结束时稍微低于目标值然后回弹;

  • scrambleEasePeriod:用于控制字符混淆过程中混淆效果的缓动周期的参数。缓动周期可以影响混淆效果的变化速度和流畅度,从而影响混淆动画的视觉效果。scrambleEasePeriod 的值为正数时,会使混淆效果在一定的周期内进行振荡,变化很快,但是相对比较流畅;而scrambleEasePeriod 的值为负数时,会使混淆效果在振荡的同时反向进行。这样会导致混淆效果变化的速度变慢,但是更加自然;

示例:

//text文本逐字地显示 "Hello",持续时间为 2 秒,使用了乱序显示的方式,使用了 Sine 缓动函数,表示逐渐加速然后减速,乱序显示的缓动振幅为 0.5,乱序显示的缓动周期为 -0.5
myText.DOText("Hello",2f,true,ScrambleMode.Uppercase,Ease.InOutSine,scrambleEaseOvershoot: 0.5f, scrambleEasePeriod: -0.5f);
  1. DOColor

用于对各种具有颜色属性的 Unity 组件进行颜色变化;

示例:

//在 1 秒内从当前颜色渐变到红色
myImage.DOColor(Color.red, 1f);
  1. DOFade

用于对具有透明度属性的对象进行透明度设置;

示例:

//在 1 秒内使 myImage 的透明度从当前值渐变到 0.5
myImage.DOFade(0.5f, 1f);
  1. DOScale

用于控制对象的缩放变化;

DOScaleX、DOScaleY、DOScaleZ:对某一个轴向进行缩放;

示例:

//一秒内将物体缩放至 2 倍
transform.DOScale(new Vector3(2f, 2f, 2f), 1f);
//一秒内将物体 X 轴方向缩放至 2 倍
transform.DOScaleX(2, 1f);
  1. DOLocalScale

用于控制对象在本地坐标的缩放变化;

DOLocalScaleX、DOLocalScaleY、DOLocalScaleZ:对某一个轴向进行缩放;

示例:

//本地坐标中,一秒内将物体缩放至 2 倍
transform.DOLocalScale(new Vector3(2f, 2f, 2f), 1f);
//本地坐标中,一秒内将物体 X 轴方向缩放至 2 倍
transform.DOLocalScaleX(2, 1f);
  1. DOLookAt

让对象的 z 轴正方向指向目标点

示例:

//在 2 秒内,平滑的让自身的 z 轴正方向指向目标点
transform.DOLookAt(obj.tranform, 2);
  1. DOGradientColor

实现渐变颜色动画效果;

参数说明如下:

  • gradient:定义了渐变颜色的Gradient对象。
  • property:指定要改变颜色的属性名称。通常是材质的属性名称,比如 "_Color"、"_EmissionColor" 等。
  • duration:动画的持续时间,表示从开始到结束所需的时间长度。

示例:

//2 秒内将对象的材质颜色从红色渐变到蓝色
Material material = GetComponent<Renderer>().material;
Gradient gradient = new Gradient();
gradient.SetKeys(new GradientColorKey[] { new GradientColorKey(Color.red, 0f), new GradientColorKey(Color.blue, 1f) },new GradientAlphaKey[] { new GradientAlphaKey(1f, 0f), new GradientAlphaKey(1f, 1f) }
);
material.DOGradientColor(gradient, "_Color", 2f);
  1. Blend

Blend名称的方法,允许混合动画,值得注意的是Blend是增量动画;

DOBlendableMoveBy:与DOMove作用类似,实现移动动画;

DOBlendableRotateBy:与DORotate作用类似,实现移动动画;

DOBlendableScaleBys:与DOScale作用类似,实现移动动画;

示例:

//假设原点坐标为(0,0,0),在 1 秒内移动到坐标(2,2,2)的位置
transform.DOBlendableMoveBy(new Vector3(1, 1, 1), 1);
transform.DOBlendableMoveBy(new Vector3(1, 1, 1), 1);


下一章 【Unity DOTween插件常用方法(二)】

这篇关于Unity DOTween插件常用方法(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo