Unity---DOTween插件学习(2)---设置参数、Ease曲线、回调
函数、动画控制函数
⽬录
本⽂及系列参考于Andy⽼师的DOTween系列
欢迎⼤家关注
6、Set设置参数
unity3d animation在Unity中添加⼀个Cube,并挂载这个脚本
SetLoops():设置循环
//参数1.循环次数(-1表⽰⽆限循环)
//参数2.循环⽅式
//Yoyo:来回运动
/
/Restart:重新开始(运动完马上返回原来状态再接着运动)
//Incremental:⼀直朝着⼀个⽅向运动
transform., 2).SetLoops(-1,LoopType.Yoyo);
SetAutoKill():设置⾃动杀死动画
transform., 2).SetAutoKill(true);
From():反向
//from(反向运动,从⽬标点运动回起始点)
//true为增量运动,false则为⽬标值运动。⽆参默认为⽬标值运动
transform., 2).From(true);
SetDelay():设置延时执⾏
transform., 2).SetDelay(2);
SetSpeedBased():设置动画以速度为基准
//参数2.原本表⽰持续时间的参数,就变为了每秒的速度
transform.*5, 2).SetSpeedBased();
SetRelative():设置为增量运动
transform. * 5, 2).SetRelative(true);
SetId():设置动画ID
//设置ID,可以⽤于之后再调⽤
transform. * 5, 2).SetId("id");
DOTween.Play("id");
SetRecyclable():设置动画是否可回收
//设置是否可回收
/
/为true的话,动画播放完会被回收,缓存下来,不然播完就直接销毁
transform. * 5, 2).SetRecyclable(true);
SetUpdate():设置动画的帧函数
//设置动画的帧函数
//第⼀个参数 UpdateType :选择使⽤的帧函数
//UpdateType.Normal:更新每⼀帧中更新要求。
//UpdateType.Late:在LateUpdate调⽤期间更新每⼀帧。
//UpdateType.Fixed:使⽤FixedUpdate调⽤进⾏更新。
//UpdateType.Manual:通过⼿动DOTween.ManualUpdate调⽤进⾏更新。
//第⼆个参数:为TRUE,则补间将忽略Unity的Time.timeScale
transform. * 5, 2).SetUpdate(UpdateType.Fixed);
7、Ease曲线
在Unity中添加⼀个Cube,并挂载这个脚本
SetEase():设置曲线
查看Ease的各种枚举类型的效果动画
//参数1 Ease的各种枚举类型
//参数2 Amplitude(振幅):就是移动次数,起始点移动到⽬标算移动⼀次,再移动回来移动两次
//参数3 period 值的范围是 -1~1
//值 > 0时,为活动范围的衰减值,活动范围会由⼤变⼩
//值 = 0时,就是均匀的在起始坐标和⽬标坐标之间运动
//值 < 0时,会施加⼀个向⽬标坐标的⼀个⼒,活动范围⼀点点增⼤,最后逼近⽬标点
//这两个参数只对Flash, InFlash, OutFlash, InOutFlash这四种曲线有⽤,其他的曲线起作⽤的就只有Ease枚举参数transform. * 5, 2).SetEase(Ease.InBack,3,0);
Animation设置曲线:
public AnimationCurve curve;
private void Start()
{
transform. * 2, 1).SetEase(curve);
//AnimationCurve 横轴是时间, 不过不是具体的时间,⽽是时间⽐例
//AnimationCurve 纵轴是倍数
//假设纵轴的值为v,传⼊DOMove的第⼀个参数endValue是e,起始点坐标是s
//此物体最后动画结束时的实际坐标即为 v * (e - s)+s
}
以回调函数为参数:
private void Start()
{
transform. * 5, 2).SetEase(EaseFun);
}
//返回值是运动距离的百分⽐值应为0~1之间,最后的值需为1,不然停留的位置不会是⽬标位置
private float EaseFun(float time, float duration, float overshootOrAmplitude, float period)
{
return time / duration;
}
8、回调函数
在Unity中添加⼀个Cube,并挂载这个脚本
1.动画完成回调
transform., 2).OnComplete(() => { });
2.完成单个循环周期时触发
transform., 2).OnStepComplete(() => { });
3.动画被杀死时回调
transform., 2).OnKill(() => { });
4.动画播放时回调,暂停后重新播放也会调⽤
transform., 3).OnPlay(() => { });
5.只在第⼀次播放动画时调⽤,在play之前调⽤
transform., 2).OnStart(() => { });
6.动画暂停时回调
transform., 2).OnPause(() => { });
7.动画回退时回调
//以下情况会被调⽤
//使⽤DORestart重新播放时
//使⽤Rewind倒播动画完成时
//使⽤DOFlip翻转动画完成时
//使⽤DOPlayBackwards反向播放动画完成时
transform., 2).OnRewind(() => { });
8.帧回调
transform., 2).OnUpdate(() => { });
9.在路径动画时,改变⽬标点时的回调,参数为当前⽬标点的下标
transform., 2).OnWaypointChange((value) => { });
9、动画控制函数
在Unity中添加⼀个Cube,并挂载这个脚本
1.播放
transform.DOPlay();
2.暂停
transform.DOPause();
3.重播
transform.DORestart();
4.倒播,此⽅法会直接退回起始点
transform.DORewind();
5.平滑倒播,此⽅法会按照之前的运动⽅式从当前位置退回起始点
transform.DOSmoothRewind();
6.杀死动画
transform.DOKill();
7.翻转补间的⽅向和Rewind效果有点像
transform.DOFlip();
8.跳转时间点
//第⼀个参数跳转的时间点,第⼆个参数是跳转后是否播放动画
transform.DOGoto(1.5f, true);
9.反向播放动画
//反向播放动画,在动画播放到⼀半时执⾏,会退回起始点,在⼀开始执⾏看不到效果是因为,物体本⾝就在起始点transform.DOPlayBackwards();
10.正向播放动画
transform.DOPlayForward();
11.TogglePause
//当暂停时,执⾏就继续播放,播放时,执⾏就暂停
transform.DOTogglePause();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论