【unity3D】DoTween动画插件(上)

news2025/1/13 13:30:19

💗 未来的游戏开发程序媛,现在的努力学习菜鸡
💦本专栏是我关于游戏开发的学习笔记
🈶本篇是unity的DoTween动画插件

DoTween动画插件(上)

    • 基础知识
    • 一些常用方法
      • DOMove和DoLocalMove
      • from Terrns
      • DOText打字机效果
      • DOShakePosition实现震动效果
      • DOColor颜色和透明度变化
      • twenner.SetEase(Ease.某种运动曲线)
      • twenner.SetLoops(次数)
      • twenner.OnComplete(一个方法)

基础知识

DOTween是一个用于Unity的快速、高效、完全类型安全的面向对象动画引擎
官网地址:http://dotween.demigiant.com/getstarted.php

在这里插入图片描述


一些常用方法

DOMove和DoLocalMove

实现物体的移动,世界坐标和局部坐标,UI的RectTransform坐标的改变,就可以使用LocalMove。

下面是一个小案例:点击按钮,图片UI从屏幕外面,移动到屏幕中央

实现点击按钮,移动到相应位置,但是是一次性的方法,图片到达固定位置,该方法即失效。

    public Transform imageTransform;//图片的位置信息
    public void OnClick()
    {
        //点击按钮,图片用时3秒移动到0,0,0的位置
        imageTransform.DOLocalMove(new Vector3(0, 0, 0), 3);
        //默认动画播放完会被销毁
    }

实现点击按钮,图片移动到想应位置,再次点击,则图片返回,并且可以一直使用。

//示例代码
    public Transform imageTransform;//图片的位置信息
    public bool isIn = false;//图片是否在屏幕里
    private void Start()
    {
        //使用tweener对象保存这个动画的信息,每次调用do类型的方法都会创建一个tweener对象,这个对象是由dotween管理的
        Tweener tweenr= imageTransform.DOLocalMove(new Vector3(0, 0, 0), 3);
        //把默认的动画播完就会自动销毁关闭
        tweenr.SetAutoKill(false);
        //不能一上来就执行,要等点击按钮,所以要先暂停
        tweenr.Pause();
    }
    public void OnClick()
    {
        //DOPlayForward和DOPlayBackwards成对出现,会播放对象挂载的所有do类型的方法
        if (isIn == false)
        {
            imageTransform.DOPlayForward();//前放
            isIn = true;
        }
        else
        {
            imageTransform.DOPlayBackwards();//倒放
            isIn = false;
        }
    }

(下面是示例图,不过因为是使用开始和结束的两张截图做的Gif图,所以没有中间过程,只是开始和结束的对比,整篇文章的图都是这样的)
在这里插入图片描述


from Terrns

Domove()是移动到指定位置
Domove().From()是指定位置移动到初始位置(绝对位置)
Domove().From(true)是指定位置移动到初始位置(相对位置)
(不仅是DoMove,其他的DoLocalMove,DoMoveX,DoMoveY,等等都是,只是举个例子)

//示例代码
    public Transform cube1;
    public Transform cube2;
    public Transform cube3;
    void Start()
    {
        //初始时,所有方块都在(1,0,0)
        cube1.DOMoveX(4, 2);//两秒,方块1移动到(4,0,0)位置
        cube2.DOMoveX(4, 2).From();//两秒,方块从(4,0,0)位置移动到(1,0,0)
        cube3.DOMoveX(4, 2).From(true);//两秒,方块从(5,0,0)位置移动到(1,0,0)

    }

在这里插入图片描述


DOText打字机效果

DoText可以实现字体在一段时间内逐个显示结束,真的要实现打字机一个一个匀速的输出字体,还需要配合控制运动曲线的SetEase。

//示例代码
    public Text text;
    void Start()
    {
        text.DOText("正在学习使用DoTween插件实现打字机效果,及字体的逐一显示",8);
    }

DOShakePosition实现震动效果

//示例代码
    transform.DOShakePosition(0.5f);//在0.5秒内,以默认振幅1在随机范围震动
    transform.DOShakePosition(0.5f,3);//在0.5秒内,以振幅3在随机范围震动
    transform.DOShakePosition(0.5f,new Vector3(2,0,0));//在0.5秒内,以振幅为2在X轴震动

DOColor颜色和透明度变化

//示例代码
    public Text test1;
    public Text test2;
    void Start()
    {
        test1.DOColor(Color.green, 4);//4秒,这行字体变成绿色
        test2.DOFade(0.5f, 4);//4秒,这行字体透明度变为50%
    }

在这里插入图片描述


twenner.SetEase(Ease.某种运动曲线)

运动曲线,用来调节运动速度的变化
如果需要匀速的动画速度的话,可以选择:linear
下面是一部分曲线的图示:
在这里插入图片描述
在这里插入图片描述

(这俩张图截取自菜鸟教程,还可以直观的对比各曲线的运动速度变化,想看的可以自己去看,以下是网址:菜鸟教程)


twenner.SetLoops(次数)

控制动画的循环次数


twenner.OnComplete(一个方法)

在动画执行结束时调用某个方法


📜以上是一些常用方法通过代码来实现,DoTween也支持可视化编辑来实现动画效果,下一篇是DoTween的可视化编辑的介绍。

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

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

相关文章

JavaScript篇.day04-函数, 对象类型

目录 1.函数 2.对象类型 3.例题 (1)斐波拉契数列(递归) (2)猴子吃桃(递归) (3)求100内的数之和(递归) 1.函数 函数: 是完成某个功能的代码块 函数声明 function 函数名(){ }function 函数名(形参1, 形参2...){ }函数表达式: var 函数名 function(){ } 匿名函数 …

springdata-Jpa-04原理

Repository原理 核心机制: 动态代理 : JdkDynamicAopProxy#invoke 调用JPA的Repository统一实现 SimpleJpaRepository 就是去通过JPA的API完成的持久化操作 Spring整合jpa原理 Spring怎么管理Repository( 怎么创建的Repository的Bean) 1.EnableJpaRep…

多线程与高并发(15)——线程池详解(非源码层面)

通过之前的一篇文章,我们总结了Executor框架。而在Executor框架中,ThreadPoolExecutor 是最核心的类。 ThreadPoolExecutor 看字面意思,是线程池的执行器。我们本篇文章就基于ThreadPoolExecutor 这个类来展开总结线程池。 下篇文章会从源码的…

java之线程同步和线程之间的通信

线程同步的概念: 由于同一个进程的多个线程共享同一块存储空间,在带来方便的同时,也会带来访问冲突的问题: 举例: public class Runnable_test implements Runnable {//实现Runnable接口 private int ticknumbers10;Overridepublic void …

【C++】——数据类型(二)

文章目录2. 数据类型2.1 整型2.2 sizeof关键字2.3 浮点型2.3.1 浮点数表示——小数点表示法2.3.2 浮点数表示——E表示法2.3.3 浮点数类型2.4 字符型2.5 转义字符2.6 字符串型2.7 布尔类型bool2. 数据类型 2.1 整型 整数就是没有小数部分的数字,如2、98、 -5286 和…

【机器学习】模型评估与选择(实战)

模型评估与选择(实战) 目录一、准备工作(设置 jupyter notebook 中的字体大小样式等)二、数据集读取与查看三、交叉验证实验1、划分数据集并置乱2、设计交叉验证实验3、进行训练(采用随机梯度下降分类器)4、…

推荐一款数据可视化分析工具

当今时代数据分析的发展,导致数据可视化成为企业必不可少的一部分,进而市面上也就涌现出各种丰富多彩的工具。传统的Excel无疑是数据可视化工具的典型,我们平时经常使用Excel制作简单表格,简单、方便,但是复杂一点的可…

酒业崛起一支奇兵,009将自信走向全球

“天若不爱酒,酒星不在天。地若不爱酒,地应无酒泉。天地既爱酒,爱酒不愧天。”这是李白《月下独酌》中的句子,诗仙也是酒仙,已是广为人知的轶事。 中国是酒的国度,酒也是历史和文化的一种表达。正因为如此&…

【读书笔记】高级FPGA设计之面积结构设计

目录 面积结构设计 折叠流水线 基于控制的逻辑复用 资源共享 复位对面积的影响 无复位的资源 无置位的资源 无同步复位的资源 复位 RAM 利用置位/复位触发器引脚 总结 面积结构设计 本篇讨论数字设计的三个主要物理特性的第二个:面积。并分析在FPGA中结构…

【代码随想录】Day67哈希表:力扣242,383,1,349,202,454,15,18

目录 基础知识 哈希表 哈希函数 2.哈希碰撞 常见的哈希结构(三种) 数组 集合set 映射map 经典题目 数组作为哈希表 例题:力扣242 已完成 例题:力扣383 已完成 例题:力扣49 例题:力扣438 set…

小黑实习第二天,正在为hbase而头疼的leetcode之旅:671. 二叉树中第二小的节点

小黑代码(暴力) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def findSecondMinimumValue(self, root: …

执照吊销了能否恢复

一、执照吊销了能否恢复 1、按照法律规定,企业法人被吊销营业执照,只是企业解散程序的开始。《公司法》规定,企业法人被吊销营业执照后应当依法进行清算,清算程序结束并办理工商注销登记后,该企业法人才归…

间隔分区表merge into报错“-2903: 语句块/包/存储函数中的间隔分区不支持自动扩展”

描述 版本: DM V8 --08134283904-20220804-166351-20005 Pack4 初始化参数: 默认 ini参数: 默认 执行间隔分区表上执行merge into语句报错,信息如下: 同样的语句,在Oracle中执行正常。 测试 创建环境&a…

Springboot利用redis缓存,结合Aop与自定义注解实现接口节流

接口的节流是开发过程中为了防止单一微服务模块突然遭受太多并发导致用户服务不流畅而产生的业务需求,就是实现在固定时间内访问同一个接口的次数也固定。开发过程中通常采用redis去作为缓存去快存快取,对于需求次数较多的数据可以存储在redis内部&#…

Ansible剧本使用

剧本语言 剧本使用的yaml语言 yaml文件的后缀为.yml或者.yaml 使用空格做为缩进 相同层级的元素左侧对齐即可 缩进时不允许使用 Tab 键,只允许使用空格 创建剧本 直接编辑不存在会自动创建这个文件,先用touch新建也行 vim juben.yml编写剧本 hosts&am…

C语言零基础项目:2D 赛车游戏,详细思路+源码分享

目录 一、简介 二、如何建立一个地图包 三、关于碰撞图的绘制 四、游戏时的说明 五、如何更好地绘制赛场图与碰撞图? 游戏截图 源码下载 一、简介 此游戏是《2D 赛车》的”魔改版“——2.5D 双人赛车! 原作实现了 2D 视角的赛车游戏&#xff0c…

关于 国产麒麟系统赋值给双精度double时乘以1.0f编译器优化 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/128459376 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

【 uniapp - 黑马优购 | 首页】小程序首页全局配置(home、网络请求、轮播图、分类...)

个人名片: 🐼作者简介:一名大二在校生,讨厌编程🎋 🐻‍❄️个人主页🥇:小新爱学习. 🐼个人WeChat:hmmwx53 🕊️系列专栏:&#x1f5bc…

csdn里的KaTex 公式语法

KaTex 语法 Accents 字母各种上下标 波浪,箭头,声调等 Delimiters 分隔符 大括号,小括号,方括号 Environments 行列式里多行多列数字表达式包含 HTML Letters and Unicode 字符和 Unicode Layout 布局 Spacing 空格 Logic and Se…

Centos系统,防火墙没开,docker部署的rabbitmq不能外网访问监听端口,但别的端口都能正常访问???

真是一个神奇的问题,防火墙firewalld ,iptables都没开。 之前访问都正常,最近可能是服务器被动了。rabbitmq的相关监听接口,只能本机服务器连接了,导致设备连接不了rabbitmq组件了。 排查问题记录 1.防火墙是否开启。发现是关闭…