unity开发之简便动画(方法链)

在做一些简洁动画的时候不想重复做录制一类的重复工作,这时候可以借助dotween来实现简洁的动画效果,只需一行代码即可完成流畅的动画,那么有时候需要进行多个动画的执行,也就是需要按照特定的顺序逐一执行怎么办呢,在这里dotween提供了方法链,有顺序、并行等顺序控制。

使用 Sequence

DOTween 提供了 Sequence 来组织多个动画顺序播放。更推荐这种方法:

cs 复制代码
// 创建一个 Sequence
Sequence sequence = DOTween.Sequence();

// 第一个动画
sequence.Append(gameObject.transform.DOLocalMoveX(v, 0.5f));

// 第二个动画,依次执行
sequence.Append(gameObject.transform.DOLocalMoveX(orgval, 0.5f));

// 开始播放 Sequence
sequence.Play();

2. AppendIntervalPrependInterval

这两个方法可以在 Sequence 中插入延时。例如,你可以控制动画之间的时间间隔。

  • AppendInterval:将时间延迟添加到动画序列的末尾。
  • PrependInterval:将时间延迟添加到动画序列的开头。
cs 复制代码
Sequence sequence = DOTween.Sequence();
sequence.Append(gameObject.transform.DOLocalMoveX(v, 0.5f));
sequence.AppendInterval(1f); // 延时 1 秒
sequence.Append(gameObject.transform.DOLocalMoveX(orgval, 0.5f));
sequence.Play();

3. Join

Join 允许你同时启动多个动画。这些动画会并行执行,但会保持它们的原始顺序。

cs 复制代码
Sequence sequence = DOTween.Sequence();
sequence.Append(gameObject.transform.DOLocalMoveX(v, 0.5f));
sequence.Join(gameObject.transform.DOLocalMoveY(3f, 0.5f)); // 同时播放
sequence.Append(gameObject.transform.DOLocalMoveX(orgval, 0.5f));
sequence.Play();

Join 使得 gameObject.transform.DOLocalMoveY(3f, 0.5f)DOLocalMoveX(v, 0.5f) 同时开始。

4. Insert

Insert 方法允许你将动画插入到现有动画的特定时间点,这样就可以在序列中的指定位置插入新的动画。

cs 复制代码
Sequence sequence = DOTween.Sequence();
sequence.Append(gameObject.transform.DOLocalMoveX(v, 0.5f));
sequence.Insert(0.25f, gameObject.transform.DOLocalMoveY(3f, 0.25f)); // 在动画开始 0.25 秒后插入新的动画
sequence.Append(gameObject.transform.DOLocalMoveX(orgval, 0.5f));
sequence.Play();

在 0.25 秒时将 DOLocalMoveY(3f, 0.25f) 动画插入到现有序列中。

相关推荐
unityのkiven2 小时前
Unity UGUI 实战:动态生成任务面板
unity·游戏引擎
郝学胜-神的一滴3 小时前
中级OpenGL教程 026:Assimp库从编译到实战全攻略
c++·unity·游戏引擎·图形渲染·unreal engine·opengl
凯尔3151 天前
Unity简单涂料实现
unity·游戏引擎·图形渲染
刘步权1 天前
KY-RTI分布仿真技术:第十三章 基于Unity的多语言三维态势仿真——以 Island Assault(夺岛突击)想定为例
unity·游戏引擎·仿真·态势·ky-rti·hla·rti
ellis19701 天前
C#/Unity清理非托管资源
unity·c#
玖玥拾2 天前
Unity 3D 笔记(十四)Unity/C# Socket 网络笔记3
服务器·网络·unity·c#
Python私教2 天前
Godot图片怎么导入?PNG、压缩、Mipmap与Reimport一次讲清
游戏引擎·godot
玖玥拾2 天前
Unity 3D 笔记(十七)Unity/C# Socket 网络笔记6
服务器·网络·unity·c#
寒水馨2 天前
Linux下载、安装godot-4.7.1-stable(附安装包Godot_v4.7.1-stable_linux.x86_64.zip)
linux·游戏引擎·godot·游戏开发·2d游戏·3d游戏·godot engine
寒水馨2 天前
macOS下载、安装godot-4.7.1-stable(附安装包Godot_v4.7.1-stable_macos.universal.zip)
macos·3d·游戏引擎·godot·跨平台·游戏开发·2d