Unity DOTween插件常用方法(二)

news2024/11/19 19:26:57

文章目录

    • 1.3 动画设置
    • 1.4 动画队列 Sequence
    • 1.5 动画回调函数
    • 1.6 等待函数(协程中使用)

1.3 动画设置

  1. SetLoops

设置循环动画;

参数:

loops:指定循环的次数,设置为 -1 表示无限循环;

loopType:用于指定动画循环的方式,是一个枚举类型(LoopType);

  • Restart:重启模式,动画结束后从头开始;
  • Yoyo:溜溜球模式,动画结束后向反方向进行运行;
  • Incremental:增量模式,朝一个方向运动;

示例:

//从原点到坐标(4,4,0)的位置来回运动,一个周期的时间为 2
transform.DOMove(new Vector3(4,4,0), 2).SetLoops(-1, LoopType.Yoyo);
  1. SetAutoKill

设置动画在完成播放后是否自动销毁,默认情况下,Tween在完成播放后会自动被销毁,可以使用 SetAutoKill(false) 方法来禁用这一行为,使得 Tween在完成播放后不会自动销毁,从而反复使用。

示例:

Tween tween = target.DOMove(new Vector3(4,4,0), 2);
tween.SetAutoKill(false);
  1. SetDelay

设置动画延时;

//间隔 1 秒后,在 2 秒内移动到坐标(4,4,0)的位置
transform.DOMove(new Vector3(4,4,0), 2).SetDelay(1);
  1. SetId

给指定Tween设置一个唯一标识,可以通过该唯一标识进行对Tween的控制;

示例:

//设置标识符
tween.SetId("MyTween");
//通过标识符启动Tween
DOTween.Play("MyTween");
  1. SetRecyclable

设置是否回收,参数为true动画播放完会被回收,反之则会销毁;

示例:

Tween tween = target.DOMove(new Vector3(4,4,0), 2);
tween.SetRecyclable(true);
  1. SetUpdate

设置动画的帧函数;

参数:

  • UpdateType
    `UpdateType.Normal`:更新每一帧中更新要求。 
    `UpdateType.Late`:在`LateUpdate`调用期间更新每一帧。 
    `UpdateType.Fixed`:使用`FixedUpdate`调用进行更新。 
    `UpdateType.Manual`:通过手动`DOTween.ManualUpdate`调用进行更新。
  • isIndependentUpdate: 是否忽略时间缩放;

示例:

//使用 FixedUpdate 调用模式,在 2 秒内从原点移动到坐标(4,4,0)
transform.DOMove(new Vector3(4,4,0), 2).SetUpdate(UpdateType.Fixed);
  1. SetEase

设置缓动函数,接收Ease枚举参数;

Ease:
请添加图片描述

示例:

//使用 InOutQuint 缓动函数在 2 秒内从原点移动到坐标(4,4,0)
transform.DOMove(new Vector3(4,4,0), 2).SetEase(Ease.InOutQuint);

1.4 动画队列 Sequence

  1. 创建动画队列
Sequence quence = DOTween.Sequence();
  1. PrependInterval

预添加时间间隔;

参数time表示要添加的时间间隔的长度,单位为秒。这个时间间隔会在整个动画序列开始执行之前等待指定的时间长度,然后再执行接下来的动画。

示例:

//动画序列 quence 将会在执行过程中等待2秒钟,然后再继续执行下一个动画
quence.PrependInterval(2);
  1. AppendInterval

在动画序列中添加一个时间间隔;

参数time表示要添加的时间间隔的长度,单位为秒。这个时间间隔会在前一个动画完成后开始计时,然后等待指定的时间长度后再执行下一个动画;

示例:

//在动画序列中添加一个时间间隔,长度为 5
quence.AppendInterval(5);
  1. PrependAppend

添加动画到队列,Prepend往队列头部添加,Append往队列尾部添加;

示例:

Tween tween1 = transform.DOMove(new Vector3(1, 1, 1), 1);
Tween tween2 = transform.DOMove(new Vector3(1, 1, 1), 1);
//将 tween2 添加到队列尾部,将 tween1 添加到队列头部
quence.Append(tween2);
quence.Append(tween1);
  1. Insert

将动画在规定时间间隔后插入到动画队列;

参数:

  • time:时间间隔;
  • tween:动画;

示例:

Tween tween = transform.DOMove(new Vector3(1, 1, 1), 1);
//在 2 秒后插入动画 tween
quence.Insert(2, tween);
  1. Join

加入当前动画;

示例:

Tween tween1 = transform.DOMove(new Vector3(1, 1, 1), 1);
Tween tween2 = transform.DOMove(new DOScale(2, 2, 2), 1);
//tween1 和 tween2 同时执行
quence.Append(tween1);
quence.Join(tween2);
  1. PrependCallback

在动画序列的最前面添加一个回调函数,当动画序列开始执行时,会先执行该回调函数;

示例:

//动画序列开始执行前,会先打印"quence start"
quence.PrependCallback(()=>{
    Debug.Log("quence start");
});
  1. InsertCallback

在动画序列的指定时间点插入一个回调函数;

示例:

//在队列执行到 2 秒的时候打印“Callback”
quence.InsertCallback(2, ()=>{
    Debug.Log("Callback");
});
  1. AppendCallback

在队列的末尾添加一个回调函数;

示例:

//在队列动画执行完毕后打印"quence end"
quence.AppendCallback(()=>{
    Debug.Log("quence end");
});

1.5 动画回调函数

函数名称说明
OnKill()动画被杀死时回调
OnPlay()动画播放时回调
OnPause()动画暂停时回调
OnRewind()动画回退时回调
OnStart()动画第一次播放时回调
OnStepComplete()完成一个周期时回调
OnUpdate()每一帧回调

1.6 等待函数(协程中使用)

  1. WaitForCompletion

等待动画执行完;

示例:

yield return tween.WaitForCompletion();
  1. WaitForKill

等待动画被杀死;

示例:

yield return tween.WaitForKill();
  1. WaitForPosition

等待动画执行到某一时刻;

示例:

yield return tween.WaitForKill(2f);
  1. WaitForStart

等待动画Start

示例:

yield return tween.WaitForStart();
  1. WaitForElapsedLoops

等待动画循环到指定次数;

示例:

yield return tween.WaitForElapsedLoops(5);
  1. WaitForRewind

等待动画回退;

示例:

yield return tween.WaitForRewind();


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

下一章 【Unity Best Http插件的基本使用】

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

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

相关文章

linux -- 并发 -- 并发来源与简单的解决并发的手段

互斥与同步 当多个执行路径并发执行时,确保对共享资源的访问安全是驱动程序员不得不面对的问题 互斥:对资源的排他性访问 同步:对进程执行的先后顺序做出妥善的安排 一些概念: 临界区:对共享的资源进行访问的代码片段…

年轻人“过年”行为大赏

【潮汐商业评论/原创】 前脚刚进家门,后脚快递电话一个接着一个。 临近春节,Julia是提前批回家的年轻人,与Julia一同到家的还有她的年货。上至大小家电,下到坚果零食,短短几天快递就堆满了客厅。 吃的喝的还能理解&…

Tencent Tinker:移动应用热修复的未来之路

Tencent Tinker:移动应用热修复的未来之路 1 引言 移动应用热修复是一项在移动应用开发领域中日益重要的技术,它可以帮助应用程序开发者快速修复线上应用的bug、漏洞和功能问题,而无需重新发布整个应用。这种能力对于提高用户体验、降低用户…

卸载Ubuntu双系统

卸载Ubuntu双系统 我们卸载Ubuntu双系统,可能出于以下原因: 1、Ubuntu系统内核损坏无法正常进入 2、Ubuntu系统分配空间不足,直接扩区较为复杂 3、以后不再使用Ubuntu,清理留出空间 123无论出于哪种原因,我们都是要…

vue项目在public中编写一个json文件 并用http请求获取 模仿数据接口

我们前后端分离是经常存在 前端已经开发到需要接口 但后端还没开始的情况的 如果直接在js中写假数据 后面还要改不少东西 多少有点麻烦 我们可以 直接在 public 静态资源目录下创建一个json文件 这里 我取名叫 city.json 大家可以根据自己喜好给json文件命名 我这个json文件的…

LEETCODE 170. 交易逆序对的总数

class Solution { public:int reversePairs(vector<int>& record) {if(record.size()<1)return 0;//归并 递归int left,right;left0;rightrecord.size()-1;int nummergeSort(left,right,record);return num;}int mergeSort(int left,int right, vector<int>…

WordPress可以做企业官网吗?如何用wordpress建公司网站?

我们在国内看到很多个人博客网站都是使用WordPress搭建&#xff0c;但是企业官网的相对少一些&#xff0c;那么WordPress可以做企业官网吗&#xff1f;如何用wordpress建公司网站呢&#xff1f;下面boke112百科就跟大家简单说一下。 WordPress是一款免费开源的内容管理系统&am…

前端JavaScript篇之对对象与数组的解构的理解、如何提取高度嵌套的对象里的指定属性?

目录 对对象与数组的解构的理解如何提取高度嵌套的对象里的指定属性&#xff1f; 对对象与数组的解构的理解 对象与数组的解构是一种通过模式匹配的方式&#xff0c;从对象或数组中提取值&#xff0c;并将其赋给变量的过程。它可以让我们以一种简洁的方式访问和使用对象或数组…

flask基于大数据的旅游景区推荐可视化大屏系统 juj13-vue

本论文分为六个章节。 第一章&#xff0c;绪论&#xff0c;其包含课题背景及意义&#xff0c;现国内外的发展现状&#xff0c;本课题要研究的内容&#xff0c;所使用开发工具的描述等信息。 第二章&#xff0c;主要介绍了系统的开发技术。 第三章&#xff0c;先讲述功能需求分析…

留学生怎么合理使用ChatGPT ?还有哪些同类工具可以使用?

一篇篇相关于ChatGPT的文章陆陆续续铺天盖地的出现在我们面前。今天我们来看看怎么使用这个宝藏工具&#xff01; 文章主要内容为&#xff1a; 1.它是什么&#xff1f; 2.它能做什么&#xff1f; 3.作为留学生我们怎么使用它&#xff1f; 4.其他同类工具推荐 5.个人观点 一…

第 8 章:Linux中使用时钟、计时器和信号

在本章中&#xff0c;我们将开始探索Linux环境中可用的各种计时器。随后&#xff0c;我们将深入了解时钟的重要性&#xff0c;并探讨UNIX时间的概念。接下来&#xff0c;我们将揭示在Linux中使用POSIX准确测量时间间隔的方法。之后&#xff0c;我们将进入std::chrono的领域&…

市场复盘总结 20240202

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 昨日主题投资 连板进级率 6/30 20% 二进三…

vue全家桶之路由管理Vue-Router

一、前端路由的发展历程 1.认识前端路由 路由其实是网络工程中的一个术语&#xff1a; 在架构一个网络时&#xff0c;非常重要的两个设备就是路由器和交换机。当然&#xff0c;目前在我们生活中路由器也是越来越被大家所熟知&#xff0c;因为我们生活中都会用到路由器&#…

基于最新koa的Node.js后端API架构与MVC模式

Koa 是一个由 Express 原班人马打造的现代 Web 框架&#xff0c;用于 Node.js。它旨在提供一个更小、更富有表现力和更强大的基础&#xff0c;用于 Web 应用和 API 开发。Koa 不捆绑任何中间件&#xff0c;它提供了一个优雅的方法以组合不同的中间件来处理请求和响应。 Koa 的核…

【QT】坐标系统和坐标变换

目录 1 坐标变换函数 1.1 坐标平移 1.2 坐标旋转 1.3 缩放 1.4 状态保存与恢复 2 坐标变换绘图实例 2.1 绘制3个五角星的程序 2.2 绘制五角星的PainterPath的定义 3 视口和窗口 3.1 视口和窗口的定义与原理 3.2 视口和窗口的使用实例 4 绘图叠加的效果 1 坐标变换函数 QPainter…

链表与二叉树-数据结构

链表与二叉树-数据结构 创建叶子node节点建立二叉树三元组&#xff1a;只考虑稀疏矩阵中非0的元素&#xff0c;并且存储到一个类&#xff08;三元组&#xff09;的数组中。 创建叶子node节点 class Node{int no;Node next;public Node(int no){this.nono;} } public class Lb…

24.云原生ArgoCD高级之数据加密seale sealed

云原生专栏大纲 文章目录 数据加密之seale sealedBitnami Sealed Secrets介绍Bitnami Sealed Secrets工作流程安装sealed-secrets和kubeseal安装sealed-secrets-controller安装kubeseal通过kubeseal将sealed-secrets公钥拿出来通过kubeseal加密secrets替换kustomize下secret为…

Leetcode 热门百题斩(第二天)

介绍 针对leetcode的热门一百题&#xff0c;解决大多数实习生面试的基本算法题。通过我自己的思路和多种方法&#xff0c;供大家参考。 1.两数之和&#xff08;题号&#xff1a;1) 方法一 最先想到的就是两个for去遍历匹配。 class Solution {public int[] twoSum(int[]…

DPVS 多活部署架构部署

一、目标 利用DPVS部署一个基于OSPF/ECMP的提供HTTP服务的多活高可用的测试环境。 本次部署仅用于验证功能&#xff0c;不提供性能验证。 配置两台DPVS组成集群、两台REAL SERVER提供实际HTTP服务。 注&#xff1a;在虚拟环境里面&#xff0c;通过在一台虚拟服务器上面安装FR…

Linux - iptables 防火墙

一. 安全技术和防火墙 1.安全技术 入侵检测系统&#xff08;Intrusion Detection Systems&#xff09;&#xff1a;特点是不阻断任何网络访问&#xff0c;量化、定位来自内外网络的威胁情况&#xff0c;主要以提供报警和事后监督为主&#xff0c;提供有针对性的指导措施和安全…