dotween路径移动_Unity---DOTween插件学习(3)---获取数据、协程、路径动画

article/2025/10/23 10:27:15

[Toc]

本文及系列参考于Andy老师的DOTween系列 欢迎大家关注**Andy老师**

10、获取数据

类方法

返回所有暂停的动画,没有则返回null

var list = DOTween.PausedTweens();

返回所有真正播放的动画,没有则返回null

var list = DOTween.PlayingTweens();

获取给定ID的数组

var list = DOTween.TweensById("id", true);

//第一个参数是动画的ID

//第二个参数是是否只收集正在播放的动画

返回给定对象上播放或缓存的动画数组

var list = DOTween.TweensByTarget(transform, true);

//第一个参数是播放动画的对象

//例如:transform.DOMove(Vector3.one, 2); 第一个参数就传入transform

//material.DOColor(Color.White, 2); 第一个参数就传入材质对象material

//第二个参数是是否只收集正在播放的动画

检测传入的对象是否有动画在活动

bool isTween = DOTween.IsTweening(transform);

//第一个参数为检测的对象

//第二个参数为是否检测动画在播放状态

//为true时,给定对象在播放状态时 返回true

//为false时,只检测给定对象是否有动画(在pause状态时也算)有则返回true

正在播放的动画的总数,目前处于延迟播放状态的动画也算

int allPlaying = DOTween.TotalPlayingTweens();


**实例方法** Tweener _tweener = transform.DOMove(Vector3.one, 2);

表示动画已经执行时间的属性,可读可写

_tweener.fullPosition = 1;

表示动画已经执行的次数

_tweener.CompletedLoops();

获取动画的延迟时间

_tweener.Delay();

获取动画的持续时间

//参数为true 表示计算循环的时间,无限循环为Infinity

_tweener.Duration(false);

动画已播放的时间

//参数为true 表示计算循环的时间

_tweener.Elapsed();

返回动画进度的百分比

//起始点为0 目标点为1 当yoyo循环模式下,值会从0变到1再从1变到0

_tweener.ElapsedDirectionalPercentage();

返回动画区间已用的百分比

//单次循环的数值为0到1

//参数为 是否包含循环 为true时 返回值是循环总区间的已用百分比 若为无限循环 返回值为0

_tweener.ElapsedPercentage(true);

动画是否在活动

_tweener.IsActive();

是否是反向动画

_tweener.IsBackwards();

动画是否完成

_tweener.IsComplete();

是否以初始化

_tweener.IsInitialized();

是否正在播放

_tweener.IsPlaying();

返回循环次数,无限循环为Infinity

_tweener.Loops();

11、携程

private Tweener _tweener;

private void Start()

{

_tweener = transform.DOMove(Vector3.one, 2);

StartCoroutine(Wait());

}

private IEnumerator Wait()

{

yield return ;

}

等待动画执行完

yield return _tweener.WaitForCompletion();

等待指定的循环次数

//参数为执行次数,等待传入的循环次数后,继续执行

//若是传入的次数大于动画的循环次数 则在动画结束时继续执行

yield return _tweener.WaitForElapsedLoops(2);

等待动画被杀死

yield return _tweener.WaitForKill();

等待动画执行指定时间

//参数为时间,动画执行传入的时间之后或动画执行完毕,继续执行

yield return _tweener.WaitForPosition(0.5f);

等待动画回退

//以下情况会继续执行函数

//使用DORestart重新播放时

//使用Rewind倒播动画完成时

//使用DOFlip翻转动画完成时

//使用DOPlayBackwards反向播放动画完成时

yield return _tweener.WaitForRewind();

等待Start执行后继续执行

yield return _tweener.WaitForStart();

12、路径动画

DOPath的一个使用小案例 在面板中创建如图的Cube,并如图摆放

59cb793606e667d72f04f9c21d1959b2.png

7f2beb424d7574528743b91d21ebcb43.png

给最上面那个Cube挂载脚本,把下面所有Cube赋值给脚本属性。

public class CubeText : MonoBehaviour

{

public Transform[] pointList;

private void Start()

{

var position = pointList.Select(u => u.position).ToArray();

transform.DOPath(position, 5, PathType.Linear).SetOptions(true).SetLookAt(new Vector3(0, 0, 0);

}

}

路径动画中DOPath的六个参数

//参数1 waypoints: 是提供路径上点的坐标,需要按顺序添加进数组

//参数2 duration:路径动画的整体持续时间

//参数3 pathType:路径类型(就是点于点之间路径连线的生成方式)

//Linear:直线

//CatmullRom:曲线

//参数4 pathModel: 路径模式(用于确定正确的LookAt方向)

//Ignore:忽略此参数和设置的LookAt参数

//Full3D:在3d场景下,代表物体可以看向任何方向

//TopDown2D:代表物体只能上下旋转,看向物体

//Sidescroller2D:代表物体只能左右旋转看向物体

//参数5 resolution:路径分辨率(默认10),代表路径点之间的曲线由多少个点构成,也就是点越多,曲线就越圆,此参数在直线路径类型下无效

//参数6 gizmoColor:在Scene视图中,生成的路径曲线的颜色

SetOptions(closePath, lockPosition, lockRotation)

//参数1 closePath:是否是封闭路径,设为true的话,会形成闭环,最后运动回起点

//参数2 lockPosition:锁定位置,参数为轴向,例如,填入AxisConstraint.X的话,横向的位移将被锁定,物体只能在其他方向上移动

//参数3 lockRotation:锁定旋转,参数为轴向,和锁定位置同理,锁定的轴向不能旋转

SetLookAt()

//参数1 closePath:是否是封闭路径,设为true的话,会形成闭环,最后运动回起点

//参数2 lockPosition:锁定位置,参数为轴向,例如,填入AxisConstraint.X的话,横向的位移将被锁定,物体只能在其他方向上移动

//参数3 lockRotation:锁定旋转,参数为轴向,和锁定位置同理,锁定的轴向不能旋转

//参数4 lookAhead参数:取值范围0-1

49e6e622398c0b7f958522bd28abeaf1.png 0:看向路径的前方 0.99:看向路径的后方 (1)closePath为false (运动最后,物体的朝向移动是路径的运动方向的前方) lookAhead = 0:目标会沿着路径看向前方 lookAhead != 0:目标会按照参数,决定开始运动时的朝向,但是运动期间会匀速转动朝向,最后朝向会转回路径前方的朝向

(2)closePath为true(开始时确定方向后就不会变化了) lookAhead = 0:目标会沿着路径看向前方 lookAhead >0 && lookAhead <1:一直保持开始时的方向(即如上图所示) lookAhead = 1:这个时候,SetLookAt没有效果,即物体不会改变朝向

这里所说的朝向是相对于运动路径的朝向

路过的大神给出的学术性的解释: lookAhead 参数的意思就是 看前看的偏移量

假设整个路径normalize. 即开始点为0,结束点为1. 走到路程的一半即为0.5.

所以如果lookAhead = 0.5 时, 假设当前Transform行走进程到 0.1的位置,则会 LookAt 行走进程 0.6的位置.

如果closePath=true, 则 lookAtPercent = Mathf.Repeat(movePercent + lookAhead, 1); 否则closePath=false, 则 lookAtPercent = Mathf.Clamp01(movePercent + lookAhead);


http://chatgpt.dhexx.cn/article/YgYwAIcx.shtml

相关文章

houdini:固定朝向的路径动画

涉及节点&#xff1a;follow path 一、模型准备 路径、朝向的物体&#xff0c;以及运动的物体&#xff0c;一共三个 二、follow path 节点 原来xxxx是一个属性&#xff0c;现在好像必须在创建路径动画的时候就选择xxx了 下面请紧跟我的步骤 steep1&#xff1a;点击follow p…

Dotween运动曲线与路径动画

Dotween运动曲线与路径动画 Dotween--运动曲线内置的运动曲线AnimationCurve Dotween--路径动画一:设置一个数组存放位置坐标二:直接写出自己想要到的坐标 Dotween–运动曲线 想要理解Dotwenn的运动曲线&#xff0c;最重要的一步就是要理解坐标的的含义&#xff0c;这里看图讲…

AE路径动画

动画效果预览 一、AI跑道汽车 注&#xff1a;绘制完成后&#xff0c;给需要作动效的部位进行单独新建图层并命名&#xff1b; ctrl c&#xff0c;ctrlf原位粘贴 二、导入AE 具体导入方法请查看此文&#xff1a; AE动画导入/导出_TING糖的博客-CSDN博客AE导入/导出方式http…

Cinemachine教程 | Unity中如何制作路径动画?

摘要&#xff1a;在Unity中制作路径动画是有挺多方式的&#xff0c;基于Cinemachine的Dolly Path是一个简单便捷的方法&#xff0c;咱们来快速的学习一下吧&#xff01; 洪流学堂&#xff0c;让你快人几步。你好&#xff0c;我是跟着大智(VX: zhz11235)学Unity的萌新&#xff0…

Android实现 曲线路径动画

本文参考 https://www.jianshu.com/p/fea4d1f6512a 概述 近期碰到曲线动画的实现问题&#xff0c;写本文记录下。 动画类似“剑与远征”游戏的金币动画&#xff0c;动画路径如下图&#xff1a; 思路 通过贝塞尔曲线计算出x和y的位置&#xff08;各个点的位置需要自己微调&am…

WPF实现路径动画

让目标沿着一条给定的路径移动&#xff0c;使用DoubleAnimationUsingPath类实现。实现如下。 点击鼠标移动 实现代码如下&#xff1a;界面XAML <Grid x:Name"LayoutRoot"> <Grid.Resources> <PathGeometry x:Key"movingPath…

Houdini:最小白的路径动画

涉及节点&#xff1a;curve、constraints、follow path 涉及知识&#xff1a;路径动画、约束 提一嘴maya的路径动画&#xff1a;在constrain-->motion paths -->attach motion path中 一、模型准备 一个模型和一个curve曲线&#xff0c;分别在两个geometry里面&#…

UE5蓝图时间轴摄影机路径动画

1. 新建蓝图类Actor 2. 蓝图里添加Spline和Camera组件&#xff0c;另外添加一个Scene场景组件&#xff0c;可以把Camera拖到Scene的子级&#xff0c;这样做可以让Camera在沿着路径运动的时候自由更改旋转方向 3. 打开关卡蓝图&#xff0c;首先按键获取MovingLine的Camera视角&a…

html5 路径运动,探秘神奇的运动路径动画 Motion Path

CSS 中有一个非常有意思的模块 -- CSS Motion Path Module Level 1,翻译过来也就是运动路径。本文将对 motion path 一探究竟,通过本文,你可以了解到:什么是 CSS motion path 使用 CSS motion path 制作简单路径动画 使用 CSS motion path 制作复杂路径动画 什么是 CSS Mot…

canvas绘制折线路径动画

最近有读者加我微信咨询这个问题&#xff1a; 其中的效果是一个折线路径动画效果&#xff0c;如下图所示&#xff1a; 要实现以上路径动画&#xff0c;一般可以使用svg的动画功能。或者使用canvas绘制&#xff0c;结合路径数学计算来实现。 如果用canvas来绘制&#xff0c…

路径动画

工作日记&#xff0c;最近做项目遇到一个有意思的动画效果&#xff0c;路径动画&#xff0c;做一个demo&#xff0c;方便以后查阅&#xff0c;也供初学者借鉴&#xff01; 效果如下图&#xff1a; 效果分两步&#xff1a; 第一步是把书翻开&#xff0c;是一个贞动画&#xf…

openlayers实现路径动画

实现效果如下 主要代码 import {Feature} from ol; import {LineString, Point} from ol/geom; import {Icon, Stroke, Fill, Style} from ol/style; import {getVectorContext} from ol/render;// 路径动画图层 let traceSource new VectorSource({}); let moveLayer new…

咸鱼Maya笔记—路径动画

咸鱼Maya笔记—路径动画 创建路径动画 动画的创建方式有很多种&#xff0c;路径动画是其中的一种&#xff0c;Key关键帧的方式并不适用于所有的情况&#xff0c;有些特定的情况下我们就需要用到路径动画&#xff0c;它的创建方法如下 创建路径动画 &#xff08;如果你的maya菜…

CSS 路径动画

前言 最近看css大佬chokcoco的文章&#xff0c;看到了这篇 探秘神奇的运动路径动画 Motion Path 关于css路径动画的文章。 之前没学过&#xff0c;这里按照大佬的文章进行简单的学习。 Motion Path CSS Motion Path 规范主要包含以下几个属性&#xff1a; offset-path&…

AnimationPath路径动画实现详解

AnimationPath路径动画实现详解&#xff1a; 一、关联类图展示 二、实现详解 首先我们通过调用createAnimationPath方法来创建动画路径&#xff0c;即&#xff1a;通过起点、终点以及之间的时间步长来进行插值来保证动画的一个流畅度&#xff0c;然后将这些时间和点保存到一个…

Dotween Path 路径动画使用方法详解

Dotween对于路径动画部分的api我觉得注释的过少了&#xff0c;很多用法没有写清楚&#xff0c;这里我就对Dotween Path做一下详细说明 1、API Dotween对于路径动画就只提供了两个方法&#xff0c;一个是针对于世界坐标的&#xff0c;一个是针对于局部坐标的&#xff0c;本质上…

WPF路径动画

特此声明&#xff1a;本文为CSDN博主「田野上的风筝」&#xff0c;原文地址&#xff1a;https://blog.csdn.net/weixin_43100896/article/details/87899883。感谢大佬的总结&#xff0c; 下文为转载内容。 在WPF中实现动画并不是什么困难的事&#xff0c;因为WPF提供了动画模型…

10路径动画

using System.Collections; using System.Collections.Generic; using System.Linq; using DG.Tweening; using UnityEngine;public class PathMove : MonoBehaviour {public Transform[] pointList;void Start(){//select方法,直接得到值,查询要返回的目标数据 int[] numm {…

服务器连接超时是怎么回事呢?

服务器连接超时就是在程序默认的等待时间内没有得到服务器的响应。 网络连接超时可能的原因有那些呢&#xff1f; 1、网络断开&#xff0c;不过经常显示无法连接。网络阻塞&#xff0c;导致你不能在程序默认等待时间内得到回复数据包。 2、网络不稳定&#xff0c;网络无法完整…

服务器时间修改连接超时时间,服务器设置网络连接超时时间设置

服务器设置网络连接超时时间设置 内容精选 换一换 有以下几种现象:将制作好的SD卡插入开发者板并上电后,开发者板LED1与LED2灯状态信息异常。将制作好的SD卡插入开发者板,并通过USB方式连接Ubuntu服务器,上电、开发者板启动完成后,Ubuntu服务器无虚拟网卡信息。将制作好的…