💗 未来的游戏开发程序媛,现在的努力学习菜鸡
💦本专栏是我关于游戏开发的学习笔记
🈶本篇是unity的DoTween动画插件
DoTween动画插件(上)
- 基础知识
- 一些常用方法
- DOMove和DoLocalMove
- from Terrns
- DOText打字机效果
- DOShakePosition实现震动效果
- DOColor颜色和透明度变化
- twenner.SetEase(Ease.某种运动曲线)
- twenner.SetLoops(次数)
- twenner.OnComplete(一个方法)
基础知识
DOTween是一个用于Unity的快速、高效、完全类型安全的面向对象动画引擎
官网地址:http://dotween.demigiant.com/getstarted.php
一些常用方法
DOMove和DoLocalMove
实现物体的移动,世界坐标和局部坐标,UI的RectTransform坐标的改变,就可以使用LocalMove。
下面是一个小案例:点击按钮,图片UI从屏幕外面,移动到屏幕中央
实现点击按钮,移动到相应位置,但是是一次性的方法,图片到达固定位置,该方法即失效。
public Transform imageTransform;//图片的位置信息
public void OnClick()
{
//点击按钮,图片用时3秒移动到0,0,0的位置
imageTransform.DOLocalMove(new Vector3(0, 0, 0), 3);
//默认动画播放完会被销毁
}
实现点击按钮,图片移动到想应位置,再次点击,则图片返回,并且可以一直使用。
//示例代码
public Transform imageTransform;//图片的位置信息
public bool isIn = false;//图片是否在屏幕里
private void Start()
{
//使用tweener对象保存这个动画的信息,每次调用do类型的方法都会创建一个tweener对象,这个对象是由dotween管理的
Tweener tweenr= imageTransform.DOLocalMove(new Vector3(0, 0, 0), 3);
//把默认的动画播完就会自动销毁关闭
tweenr.SetAutoKill(false);
//不能一上来就执行,要等点击按钮,所以要先暂停
tweenr.Pause();
}
public void OnClick()
{
//DOPlayForward和DOPlayBackwards成对出现,会播放对象挂载的所有do类型的方法
if (isIn == false)
{
imageTransform.DOPlayForward();//前放
isIn = true;
}
else
{
imageTransform.DOPlayBackwards();//倒放
isIn = false;
}
}
(下面是示例图,不过因为是使用开始和结束的两张截图做的Gif图,所以没有中间过程,只是开始和结束的对比,整篇文章的图都是这样的)
from Terrns
Domove()是移动到指定位置
Domove().From()是指定位置移动到初始位置(绝对位置)
Domove().From(true)是指定位置移动到初始位置(相对位置)
(不仅是DoMove,其他的DoLocalMove,DoMoveX,DoMoveY,等等都是,只是举个例子)
//示例代码
public Transform cube1;
public Transform cube2;
public Transform cube3;
void Start()
{
//初始时,所有方块都在(1,0,0)
cube1.DOMoveX(4, 2);//两秒,方块1移动到(4,0,0)位置
cube2.DOMoveX(4, 2).From();//两秒,方块从(4,0,0)位置移动到(1,0,0)
cube3.DOMoveX(4, 2).From(true);//两秒,方块从(5,0,0)位置移动到(1,0,0)
}
DOText打字机效果
DoText可以实现字体在一段时间内逐个显示结束,真的要实现打字机一个一个匀速的输出字体,还需要配合控制运动曲线的SetEase。
//示例代码
public Text text;
void Start()
{
text.DOText("正在学习使用DoTween插件实现打字机效果,及字体的逐一显示",8);
}
DOShakePosition实现震动效果
//示例代码
transform.DOShakePosition(0.5f);//在0.5秒内,以默认振幅1在随机范围震动
transform.DOShakePosition(0.5f,3);//在0.5秒内,以振幅3在随机范围震动
transform.DOShakePosition(0.5f,new Vector3(2,0,0));//在0.5秒内,以振幅为2在X轴震动
DOColor颜色和透明度变化
//示例代码
public Text test1;
public Text test2;
void Start()
{
test1.DOColor(Color.green, 4);//4秒,这行字体变成绿色
test2.DOFade(0.5f, 4);//4秒,这行字体透明度变为50%
}
twenner.SetEase(Ease.某种运动曲线)
运动曲线,用来调节运动速度的变化
如果需要匀速的动画速度的话,可以选择:linear
下面是一部分曲线的图示:
(这俩张图截取自菜鸟教程,还可以直观的对比各曲线的运动速度变化,想看的可以自己去看,以下是网址:菜鸟教程)
twenner.SetLoops(次数)
控制动画的循环次数
twenner.OnComplete(一个方法)
在动画执行结束时调用某个方法
📜以上是一些常用方法通过代码来实现,DoTween也支持可视化编辑来实现动画效果,下一篇是DoTween的可视化编辑的介绍。