目录
1 循环动画:SetLoops(-1 , loopType )
3. 动画事件监听与回调:OnStart \ OnComplete
一.简介
Dotween 是 Unity 的一个插件,用于简化动画制作和处理过渡效果。它提供了一系列强大的功能,可以轻松创建复杂的动画效果。
1.1 插件下载
unity store中搜索 dotween
或
1.2 官方文档
二.导入和设置
如上,在unity store 中将找到的dotween资源添加到我的资源中,然后在 unity中依次选择
Window --> Package Manager
在打开的窗口中选择My Assets,然后在搜索框中搜索 dotween.
如图:
DOTween首次使用需要设置,导入以后会弹出窗口,点击open按钮就好。
或依次选择 Tools-->Demigiant-->DoTween Utility Panel
然后弹出下图:
之后点击绿色的“Setup DOTween”按钮就能设置。下面的那个青色的按钮是生成一个ASMDEF文件,让写脚本的时候不必每次都去编码DOTween的内容,提高写完代码切换的速度。
点击了按钮就显示下面这个界面,默认全选就好,再选中Apply按钮就可以了。
三.示例代码
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 逐帧动画:SetO