unity --- DoTween插件安装与使用

这篇具有很好参考价值的文章主要介绍了unity --- DoTween插件安装与使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.简介

 1.1 插件下载

1.2 官方文档

二.导入和设置

三.示例代码

1 循环动画:SetLoops(-1 , loopType )

2. 动画循环次数:SetLoops( count )

3. 动画事件监听与回调:OnStart \ OnComplete

4. 动画延迟回调:SetDelay

5. 动画自定义更新回调:OnUpdate

6. 动画路径回调:OnWayPointChange

7. 动画循环回调:

9. 动画延迟:SetDelay

10. 动画暂停和恢复:pause\play

11. 自定义动画曲线:SetEase( curve )

12. 动画过渡效果:SetEase

13. 动画速度调节:SetSpeed

14. 动画路径:DoPath

15. 动画贝塞尔曲线路径:DoPath

16. 动画颜色变化:DoColor

17. 动画渐变效果:DoColor

18. 动画旋转:DoRate

19. 动画相机视角变化:DoRatate

20. 动画缩放:DoScale

21. 动画摄像机视野变化:DOFieldIfView

22. 动画音量变化:DOFade

23. 动画淡入淡出效果:DoFade

24. 动画透明度变化:DoFade

25. 动画材质属性变化:DoFloat

26. 动画 UI 元素变化:DoSizeDelta

27. 动画相机抖动效果:DoShakePosition

28. 动画物体震动效果:DoShakePosition

29. 动画序列嵌套:

31. 动画字体大小变化:DoFontSize

33. 动画相机视角缩放:DOOrthoSize

34.DoText

1.基础使用

2.可选的参数

3.字符串格式化

4.链式调用


一.简介

Dotween 是 Unity 的一个插件,用于简化动画制作和处理过渡效果。它提供了一系列强大的功能,可以轻松创建复杂的动画效果。

 1.1 插件下载

unity store中搜索 dotween 

点击这里

1.2 官方文档

文档

二.导入和设置

如上,在unity store 中将找到的dotween资源添加到我的资源中,然后在 unity中依次选择

Window --> Package Manager

在打开的窗口中选择My Assets,然后在搜索框中搜索 dotween.

如图:

dotween插件,unity-插件,unity,游戏引擎

 DOTween首次使用需要设置,导入以后会弹出窗口,点击open按钮就好。

或依次选择 Tools-->Demigiant-->DoTween Utility Panel

然后弹出下图:

dotween插件,unity-插件,unity,游戏引擎

 之后点击绿色的“Setup DOTween”按钮就能设置。下面的那个青色的按钮是生成一个ASMDEF文件,让写脚本的时候不必每次都去编码DOTween的内容,提高写完代码切换的速度。

点击了按钮就显示下面这个界面,默认全选就好,再选中Apply按钮就可以了。

dotween插件,unity-插件,unity,游戏引擎

三.示例代码

1 循环动画:SetLoops(-1 , loopType )
transform.DOScale(targetScale, duration).SetLoops(-1, LoopType.Yoyo);

该代码创建了一个循环动画,使物体平滑地缩放到目标大小 `targetScale`,然后再返回原始大小,以此往复进行。

transform.DOMove(targetPosition, duration).SetLoops(-1, LoopType.PingPong);

该代码创建了一个移动动画,使物体从当前位置平滑地移动到目标位置 `targetPosition`,然后返回原始位置,以此往复进行。

2. 动画循环次数:SetLoops( count )
transform.DOMove(targetPosition, duration).SetLoops(loopCount);

该代码创建了一个移动动画,使物体平滑地移动到目标位置 `targetPosition`,并循环播放 `loopCount` 次。

3. 动画事件监听与回调:OnStart \ OnComplete
tween.OnStart(() =>
{
    Debug.Log("动画开始");
});

tween.OnComplete(() =>
{
    Debug.Log("动画完成");
});

该代码添加了动画开始和动画完成的事件监听器。当动画开始时,将调用第一个回调函数并输出"动画开始";当动画完成时,将调用第二个回调函数并输出"动画完成"。

4. 动画延迟回调:SetDelay
transform.DOMove(targetPosition, duration)
.SetDelay(delay)
.OnComplete(() =>
{
    Debug.Log("延迟回调动画完成");
});

这段代码使用DOTween插件实现了动画的延迟回调效果。`transform.DOMove`表示物体移动的动画,`targetPosition`是目标位置,`duration`是动画的持续时间。`SetDelay`方法用于设置延迟开始动画的时间,`OnComplete`方法在动画完成时执行回调函数,这里会输出"延迟回调动画完成"。

5. 动画自定义更新回调:OnUpdate
transform.DOMove(targetPosition, duration).OnUpdate(() =>
{
    Debug.Log("动画更新中...");
});

这段代码使用DOTween插件实现了动画的自定义更新回调效果。`transform.DOMove`表示物体移动的动画,`targetPosition`是目标位置,`duration`是动画的持续时间。`OnUpdate`方法在动画更新时执行回调函数,这里会输出"动画更新中..."。

6. 动画路径回调:OnWayPointChange
transform.DOPath(path, duration, PathType.CatmullRom).OnWaypointChange(index =>
{
    Debug.Log("到达路径点:" + index);
});

这段代码使用DOTween插件实现了动画的路径回调效果。`transform.DOPath`表示物体按路径移动的动画,`path`是一个路径点的数组或列表,`duration`是动画的持续时间,`PathType.CatmullRom`表示路径的类型为Catmull-Rom曲线。`OnWaypointChange`方法在到达路径点时执行回调函数,这里会输出"到达路径点:"加上路径点的索引。

7. 动画循环回调:
transform.DOMove(targetPosition, duration)
.SetLoops(-1, LoopType.Restart)
.OnStepComplete(() =>
{
    Debug.Log("循环结束");
});

8 逐帧动画:SetOptions

transform.DOLocalPath(path, duration, PathType.CatmullRom).SetOptions(true);

该代码创建了一个逐帧动画,物体将按照给定的路径数组 `path` 逐帧平滑移动。使用 Catmull-Rom 插值算法计算路径上的连续点。

9. 动画延迟:SetDelay
transform.DOMove(targetPosition, duration).SetDelay(delay);

该代码创建了一个延迟动画,使物体在延迟了 `delay` 秒之后开始平滑地移动到目标位置 `targetPosition`,动画持续时间为 `duration` 秒。

10. 动画暂停和恢复:pause\play
tween.Pause();

tween.Play();

该代码演示了如何暂停和恢复动画。通过调用 `Pause()` 方法可以暂停动画的播放,调用 `Play()` 方法可以恢复动画的播放。

11. 自定义动画曲线:SetEase( curve )
transform.DOMove(targetPosition, duration).SetEase(curve);

该代码创建了一个移动动画,使物体按照自定义的动画曲线 `curve` 平滑移动到目标位置 `targetPosition`。

12. 动画过渡效果:SetEase
transform.DOMove(targetPosition, duration).SetEase(Ease.InOutQuad);

该代码创建了一个移动动画,使物体从当前位置平滑地移动到目标位置 `targetPosition`,并使用 InOutQuad 过渡效果,即快速开始和缓慢结束。

13. 动画速度调节:SetSpeed
transform.DOMove(targetPosition, duration).SetSpeedBased().SetSpeed(speed);

该代码创建了一个移动动画,物体从当前位置平滑地移动到目标位置 `targetPosition`,并根据动画的长度自动调整播放速度,并将播放速度设置为 `speed` 倍。

14. 动画路径:DoPath
transform.DOPath(path, duration, PathType.CatmullRom);

该代码创建了一个移动动画,使物体按照给定的路径数组 `path` 平滑移动,使用 Catmull-Rom 插值算法计算路径上的连续点。

15. 动画贝塞尔曲线路径:DoPath
transform.DOPath(path, duration, PathType.CubicBezier);

这段代码使用DOTween插件实现了物体的贝塞尔曲线路径动画。`transform`表示一个物体的Transform组件,`DOPath`方法用于在指定的时间内使物体按贝塞尔曲线路径移动,`path`是一个路径点的数组或列表,`duration`是动画的持续时间,`PathType.CubicBezier`表示路径的类型为三次贝塞尔曲线。

16. 动画颜色变化:DoColor
spriteRenderer.DOColor(targetColor, duration);

该代码创建了一个颜色变化动画,使 SpriteRenderer 对象的颜色平滑过渡到目标颜色 `targetColor`,动画持续时间为 `duration` 秒。

17. 动画渐变效果:DoColor
graphic.DOColor(targetColor, duration);

这段代码使用DOTween插件实现了渐变效果。`graphic`可以是任何继承自Graphic的UI元素,`DOColor`方法用于在指定的时间内将UI元素的颜色渐变到目标颜色`targetColor`。

18. 动画旋转:DoRate
transform.DORotate(targetRotation, duration);

该代码创建了一个旋转动画,使物体平滑地旋转到目标角度 `targetRotation`,动画持续时间为 `duration` 秒。

19. 动画相机视角变化:DoRatate
mainCamera.DORotate(new Vector3(targetAngle, 0f, 0f), duration);

这段代码使用DOTween插件实现了相机视角的变化效果。`mainCamera`是一个相机对象,`DORotate`方法用于在指定的时间内将相机的旋转角度渐变到目标角度,这里只改变了X轴方向的旋转角度,`targetAngle`是目标角度,`duration`是动画的持续时间。

20. 动画缩放:DoScale
transform.DOScale(targetScale, duration);

该代码创建了一个缩放动画,使物体平滑地缩放到目标大小 `targetScale`,动画持续时间为 `duration` 秒。

21. 动画摄像机视野变化:DOFieldIfView
mainCamera.DOFieldOfView(targetFieldOfView, duration);

该代码创建了一个摄像机视野变化动画,使主摄像机的视野平滑过渡到目标视野 `targetFieldOfView`,动画持续时间为 `duration` 秒。

22. 动画音量变化:DOFade
audioSource.DOFade(targetVolume, duration);

这段代码实现了音频渐变效果。`audioSource`是一个音频源对象,`DOFade`方法用于在指定的时间内将音频的音量渐变到目标音量`targetVolume`。

23. 动画淡入淡出效果:DoFade
canvasGroup.DOFade(targetAlpha, duration);

这段代码实现了CanvasGroup的淡入淡出效果。`canvasGroup`是一个CanvasGroup组件,`DOFade`方法用于在指定的时间内将CanvasGroup的透明度渐变到目标透明度`targetAlpha`。

24. 动画透明度变化:DoFade
spriteRenderer.DOFade(targetAlpha, duration);

这段代码使用DOTween插件实现了透明度的渐变效果。`spriteRenderer`是一个SpriteRenderer组件,`DOFade`方法用于在指定的时间内将对象的透明度渐变到目标透明度`targetAlpha`。

25. 动画材质属性变化:DoFloat
renderer.material.DOFloat(targetValue, "_PropertyName", duration);

这段代码使用DOTween插件实现了材质属性的渐变效果。`renderer`是一个渲染器组件,`material`属性获取了该渲染器的材质。`DOFloat`方法用于在指定的时间内将材质的属性`"_PropertyName"`渐变到目标值`targetValue`。

26. 动画 UI 元素变化:DoSizeDelta
rectTransform.DOSizeDelta(targetSizeDelta, duration);

这段代码使用DOTween插件实现了UI元素的大小变化效果。`rectTransform`是一个RectTransform组件,`DOSizeDelta`方法用于在指定的时间内将UI元素的尺寸变化到目标尺寸`targetSizeDelta`。

27. 动画相机抖动效果:DoShakePosition
mainCamera.DOShakePosition(duration, strength, vibrato, randomness);

这段代码使用DOTween插件实现了相机的抖动效果。`mainCamera`是一个相机对象,`DOShakePosition`方法用于在指定的时间内使相机产生抖动效果,其中`duration`表示抖动的持续时间,`strength`表示抖动的强度,`vibrato`表示抖动的频率,`randomness`表示抖动的随机性。

28. 动画物体震动效果:DoShakePosition
transform.DOShakePosition(duration, strength);

这段代码使用DOTween插件实现了物体的震动效果。`transform`表示一个物体的Transform组件,`DOShakePosition`方法用于在指定的时间内使物体产生震动效果,其中`duration`表示震动的持续时间,`strength`表示震动的强度。

29. 动画序列嵌套:
Sequence sequence = DOTween.Sequence();

sequence.Append(transform.DOMove(targetPosition / 2f, duration));

sequence.Append(transform.DOMove(targetPosition, duration));

sequence.Append(transform.DOMove(Vector3.zero, duration));

sequence.SetLoops(-1);

这段代码使用DOTween插件实现了动画序列嵌套效果。`DOTween.Sequence()`创建了一个动画序列对象`sequence`,`Append`方法用于按顺序添加动画,`transform.DOMove`表示物体移动的动画,`targetPosition`是目标位置,`duration`是动画的持续时间,`SetLoops(-1)`表示无限循环播放动画序列。

31. 动画字体大小变化:DoFontSize
text.DOFontSize(targetFontSize, duration);

这段代码使用DOTween插件实现了字体大小的变化效果。`text`是一个Text组件,`DOFontSize`方法用于在指定的时间内将文本的字体大小渐变到目标字体大小`targetFontSize`。

33. 动画相机视角缩放:DOOrthoSize
mainCamera.DOOrthoSize(targetSize, duration);

这段代码使用DOTween插件实现了相机视角的缩放效果。`mainCamera`是一个相机对象,`DOOrthoSize`方法用于在指定的时间内将相机的正交视角大小渐变到目标大小`targetSize`。

34.DoText
1.基础使用
textField.DOText(targetText, duration);

我们假设您有一个UI Text字段(在Unity中使用Text组件表示),您想要在一秒钟内将其文本更改为目标文本。首先,您需要在脚本中获取对该UI Text字段的引用(在示例中为textField)。

然后,您可以使用DOText方法来逐渐更改文本内容。将目标文本作为第一个参数传递给DOText方法,并将持续时间作为第二个参数传递。

2.可选的参数

可以用来自定义文本更改的方式。例如,您可以指定文本的曲线动画类型(例如线性、EaseIn、EaseOut等),以及使用回调函数来在文本更改完成后执行其他操作。以下是一个示例:

textField.DOText(targetText, duration)
.SetEase(Ease.OutQuad) // 设置曲线动画类型
.OnComplete(() => Debug.Log("文本更改完成")); // 设置完成时的回调函数
3.字符串格式化

您可以使用字符串格式化功能来将变量的值插入到文本中。例如,假设您有一个分数变量int score = 100;,您可以将其插入到目标文本中的特定位置,如下所示:

string targetText = $"当前分数:{score}";
textField.DOText(targetText, duration);

这将在文本更改时将变量的值动态插入到目标文本中。

4.链式调用

DoTween的方法通常支持链式调用,这意味着您可以在同一行上连接多个Tween动画,以便按顺序执行它们。例如,您可以在文本更改完成后淡出文本字段:文章来源地址https://www.toymoban.com/news/detail-670052.html

textField.DOText(targetText, duration)
.OnComplete(() => textField.DOFade(0f, 1f));

到了这里,关于unity --- DoTween插件安装与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity——DoTween插件

    using DG.Tween DoTween的一些用法 移动动画 旋转   尺寸 ` 震动 材质 摄像机 Text 队列 设置参数 运动曲线 缓动函数速查表 (xuanfengge.com) 回调函数 控制函数 获取数据 携程 路劲动画 using System.Linq;  

    2024年02月11日
    浏览(45)
  • [Unity 3d] 插件---- DoTween 动画方法调用及执

    一、移动和旋转(一到四主要应用于Transform的方法) 1、使用DoTween首先要引用命名空间 Using DG.Tweening; 2、transform.DOMove(目标位置,所花费的时间/s) //移动方法 3、transform.DoLocalMoveX(目标位置,所花费的时间)//单一的移动方法 4、transform.DoLocalMove()//移动自己的局部坐标 5、transfo

    2024年02月09日
    浏览(55)
  • Unity Dotween插件物体、ui的移动 旋转 缩放效果

    Unity Dotween插件物体、ui的移动 旋转 缩放效果 #脚本应用命名空间 using DG.Tweening; ##让游戏物体平移 //参数一:要移动到的位置 //参数二:动画完成要多少秒 transform.DOMove(new Vector3(1,3, 8.08f),5.5f); ##让游戏物体旋转 //参数一:要旋转成的样子的坐标 //参数二:旋转动画多少秒完成 trans

    2024年02月01日
    浏览(52)
  • Unity Dotween插件的运动曲线(Ease)介绍Ease选项Ease效果示例以及C#修改动画曲线功能

    我们在制作动画时经常使用这个Dotween插件,在移动、旋转、透明度等等参数的控制都可以使用该插件,而且在这个插件上的控制动画可以设置曲线,内置的曲线有这些: 以InOutSine的曲线进行往右移动: 效果是这样的: 能看出开始是从0提速,最后是慢慢减速至0的效果。 4个

    2024年02月01日
    浏览(81)
  • Unity3d2021版本 使用DOTween插件报错The type name ‘Rigidbody2D‘ could not be found in the namespace ‘****‘问题

    最近在升级项目至2021版本的过程中发现了诸多这种问题,今天就遇到这样的报错: AssetsPluginsDemigiantDOTweenModulesDOTweenModulePhysics2D.cs(143,18): error CS1069: The type name ‘Rigidbody2D’ could not be found in the namespace ‘UnityEngine’. This type has been forwarded to assembly ‘UnityEngine.Physics2DModule,

    2024年02月11日
    浏览(65)
  • Unity 使用 Dotween 的 Sequence 制作UI动画并且可重复利用

    目录 前言 一、DOTween是什么? 二、使用步骤 1.导入DOTween 2.配置DOTween 3.使用代码编写动画 4.代码API解释 总结 DOTween可以制作简易的UI动画,避免创建大量的Animator,本篇文章介绍一下我制作UI动画时的一些技巧 效果展示   DOTween是UnityAssetStore中一个免费的插件,用于创建简单的

    2024年02月08日
    浏览(51)
  • Unity中DOTween文本逐字显示,DOTween动画播放

     Text文本逐字显示 Text文本匀速逐字显示  DOTween动画

    2024年02月16日
    浏览(65)
  • UnityUI动态效果插件Dotween

    DoTween是unity的动画特效插件 它的核心在于实现了【数值的缓动】 Dotween.To方法 是dotween实现数值缓动的基础方法,其他方法都是基于此方法的扩展 Dotween.To(get,set,targetvalue,duration); get:                  获取传入值的引用 set:                  通过传入值的引用,对这个值

    2024年02月05日
    浏览(44)
  • Unity DOTween

    目录 1.主要方法 2.单个动画(Tween) 3.回调方法 4.设置参数 4.序(队)列动画(Sequence) 3. To方法 5.参考链接 1.以DO开头的方法:就是补间动画的方法。例如:transform.DOMoveX(100,1) 2.以Set开头的方法:设置补间动画的一些属性。例如:myTween.SetLoops(4, LoopType.Yoyo) 3.以On开头的方法:补间动画

    2024年02月01日
    浏览(39)
  • 【Unity学习笔记】DOTween(2)官方案例

    本文中大部分内容学习来自DOTween官方文档 此处无法展示动图(懒得录GIF),请下载官方案例场景自行学习 案例一展示了最基础的一些用法: 解读一下代码,redCube的移动是在两秒内移动到了指定坐标 0,4,0 ,而greenCube移动带有 From 方法,则是从坐标 0,4,0 移动到原坐标。blueC

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包