搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
AllinToyou
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
JDK1.8的新特性_jdk1.8 @elementtype
2
TensorFlow什么意思?TensorFlow是什么?
3
RCC——使用HSE/HSI配置时钟
4
JDK1.8 新特性(未完待续)
5
Dockerfile常用命令(安全)_[dockerfile动态参数"/bin/sh","-c
6
数学建模 | MATLAB 学习 | 遗传算法_integer variable indices
7
c#【 网络日志解析工具】开发篇-【媒体预览功能】--base64,webp响应解码为图片-》可做复制base64进行图片查看_21:/##x-ap6eblhxr31mo##1:/$dxdgaqk$
8
Linux Centos 7查看文件内容_centos7查看文件内容
9
【Docker】Docker的部署含服务和应用、多租环境、Linux内核的详细介绍_什么应用适合容器部署
10
Win10 adb pull指定的文件_adb pull到本地
当前位置:
article
> 正文
DoTween使用_dotween的销毁动画
作者:AllinToyou | 2024-02-16 02:28:54
赞
踩
dotween的销毁动画
using
System
.
Collections
;
using
UnityEngine
;
using
DG
.
Tweening
;
using
UnityEngine
.
UI
;
/*
* DOTween真的比iTween好很多:
* 1.编写方面更加人性化
* 2.效率高很多
*
* DoTween插件的基本概念以及简介:
* 1.DoTween实现的是通用的缓动算法,用于给Unity中的游戏对象添加动作动画。
* 2.DoTween的API风格一律采用链式调用,再配以Lambda匿名函数的调用,可以配置出各种各样想要的丰富的动画效果。
* 3.DoTween还可以实现队列延迟回调函数,也能完成各种异步延迟执行的功能
* 4.DoTween为了方便开发者使用,对各种Unity的脚本对象进行了函数绑定,例如:
* Transform, Color, Text, Material等都可以直接调用DoTween的动画函数
*
* 绑定的快捷方式动画函数API
* 函数名称解释:
* 都是以DO开头,带Local的就是局部坐标系,不带的指的是基于世界坐标系
* 所有函数调用都是链式调用
* 可以自己设置缓动算法的类型,也可以用一些已经配置好的缓动算法,比如跳跃Jump
* 这类函数的API调用更符合常用函数的使用习惯,move就是移动,scale就是缩放,rotation就是旋转,color就是颜色,数值的变化就是float
* 更多的功能用法直接在程序中自动补全就可以理解意思了
*
* 1.以DO开头的方法:就是补间动画的方法。例如:transform.DOMoveX(100,1)
* 2.以Set开头的方法:设置补间动画的一些属性。例如:myTween.SetLoops(4, LoopType.Yoyo)
* 3.以On开头的方法:补间动画的回调方法。例如:myTween.OnStart(myStartFunction)
好了,正式开始!
*/
public
class
CubeAnimator
:
MonoBehaviour
{
Camera
_camera
;
Material
material
;
public
Text
text
;
Tweener
_tweener
;
void
Start
()
{
/*DOTween初始化与全局设置:
当你第一次创建一个Tween时,DOTween就会自动初始化(只初始化一次)。
当然,也可以使用DOTween.Init方法进行自定义,但要在第一次创建一个Tween前。所有创建的Tween都会受DOTween.Init方法的影响。
*recycleAllByDefault :如果为true,则当Tween完成时就会被回收,放到一个池中;否则就会被destroy
*useSafeMode :效率会稍微降低,但更安全
*logBehaviour :默认值为只打印错误信息
*/
DOTween
.
Init
(
false
,
true
,
LogBehaviour
.
ErrorsOnly
);
_camera
=
Camera
.
main
;
material
=
GetComponent
<
MeshRenderer
>()
.
material
;
//一、Unity常用组件拓展方法
//(1) Transform拓展方法
TestTransformFuncAnim
();
//(2) _camera拓展方法
TestCameraFuncAnim
();
//(3) Material拓展方法
TestMaterialFuncAnim
();
//(4) Text拓展方法
TestTextFuncAnim
();
//二、Dotween常用方法
//Sequence动画序列函数API
/*
* 基本解释说明:
* 动画序列其实就是包含了一组Tweener并且操作其他Tweener的一个工具
* 动画序列并不一定要一个接着一个的播放和执行
* 动画序列之间可以重叠和重复
* 你可以以任何你所期望的形式混合夹杂着去使用它们
* DOTween.Sequence()会创建一个动画序列对象,以后所有的Sequence函数都会返回这个Sequence对象,也就是说动画序列也可以链式调用
* Append(tweener) 可以在队尾追加一个tweener,会按照顺序依次执行这个tweener序列,一个tweener完成后执行下一个。
* Insert(time, tweener) 可以在队列中插入一个tweener,第1个参数代表插入的时间点,第2个参数代表在此时间点插入的动画。
* AppendInterval(time) 可以在队尾追加一个时间间隔功能函数,在队列执行的过程中,停顿一个时间,然后继续执行。
* AppendCallback(func) 可以在队尾追加一个匿名函数,在队列中执行一个回调。
*/
//(5) Sequence 队列
TestSequenceAnim
();
//(6) Tweener的设置
SetterTweener
();
//7.关于Ease缓动函数的说明
/*
* 基本概念说明:
* 缓动函数是指动画效果在执行时的速度,使其看起来更加真实。
* Ease.InSine 表示正弦加速动作
* Ease.OutSine 表示正弦减速动作
* Ease.InOutSine 表示正弦加速减速动作
* 每个效果都分3种缓动方式:
* (1).easeIn:从0开始加速的缓动
* (2).easeOut:减速到0的缓动
* (3).easeInOut:前半段从0开始加速,后半段减速到0的缓动
* 其中Linear是线性缓动,也叫无缓动效果,没有上述说明中的效果。
*/
//(7) 运动曲线的设置
TestEaseFuncAnima
();
//(8) 动画回调事件
TestCallBack
();
//(9) 动画控制方法
TestAnimatorController
();
//(10) 获取数据方法
GetTweenerDat
();
//(11) 协程方法
StartCoroutine
(
Wait
());
}
//(1) Transform拓展方法
private
void
TestTransformFuncAnim
()
{
//Position
//1)改变世界坐标
//移动方法,第一个参数是要移动到的目标点,不是移动这个向量的距离
transform
.
DOMove
(
new
Vector3
(
1
,
1
,
1
),
2
);
//只控制x轴上的移动,其他两个方向同理
transform
.
DOMoveX
(
1
,
2
);
//2)改变局部坐标
transform
.
DOLocalMove
(
new
Vector3
(
1
,
1
,
1
),
2
);
transform
.
DOLocalMoveX
(
1
,
2
);
//Rotation
//1)世界旋转
//旋转到给定的值,改变的是欧拉角
transform
.
DORotate
(
new
Vector3
(
0
,
90
,
0
),
2
);
//旋转到给定的值,改变的是四元数
transform
.
DORotateQuaternion
(
new
Quaternion
(
0.1f
,
0.1f
,
0.1f
,
0.1f
),
2
);
//2)局部旋转
// 旋转到给定的值,改变的是欧拉角
transform
.
DOLocalRotate
(
new
Vector3
(
0
,
90
,
0
),
2
);
// 旋转到给定的值,改变的是四元数
transform
.
DOLocalRotateQuaternion
(
new
Quaternion
(
0.1f
,
0.1f
,
0.1f
,
0.1f
),
2
);
// 在给定时间内,平滑的让自身的z轴正方向指向目标点
transform
.
DOLookAt
(
new
Vector3
(
0
,
0
,
0
),
2
);
// Scale
//同上面一样,这里改变物体的缩放到目标值
transform
.
DOScale
(
new
Vector3
(
2
,
2
,
2
),
2
);
//其他两个轴向同理
transform
.
DOScaleX
(
3
,
2
);
//Punch
/*
第一个参数 punch:表示方向及强度
第二个参数 duration:表示动画持续时间
第三个参数 vibrato:震动次数
第四个参数 elascity: 这个值是0到1的
当为0时,就是在起始点到目标点之间运动
不为0时,会把你赋的值乘上一个参数,作为你运动方向反方向的点,物体在这个点和目标点之间运动
*/
transform
.
DOPunchPosition
(
new
Vector3
(
0
,
1
,
0
),
2
,
2
,
0.1f
);
transform
.
DOPunchRotation
(
new
Vector3
(
0
,
90
,
0
),
2
,
2
,
0.1f
);
transform
.
DOPunchScale
(
new
Vector3
(
2
,
2
,
2
),
2
,
2
,
0.1f
);
//Shake
/*
* 参数:持续时间,力量,震动,随机性,淡出
力量:实际就是震动的幅度,可以理解成相机施加的力的大小 使用Vector3可以选择每个轴向不同的强度
震动:震动次数
随机性:改变震动方向的随机值(大小:0~180)
淡出:就是运动最后是否缓慢移动回到原本位置
*/
transform
.
DOShakePosition
(
1
,
5
,
10
,
50
,
true
);
transform
.
DOShakeRotation
(
3
);
transform
.
DOShakeScale
(
3
);
//带Blend名称的方法,允许混合动画
//原本同时执行两个Move方法,只会执行最新的一个动画命令
//例如:
transform
.
DOMove
(
Vector3
.
one
,
2
);
transform
.
DOMove
(
Vector3
.
one
*
2
,
2
);
//结果是物体运动到了(2,2,2)坐标上
//DOBlendableMoveBy方法有两个特点
//1)允许多个同时执行
//例如:
transform
.
DOBlendableMoveBy
(
new
Vector3
(
1
,
1
,
1
),
1
);
transform
.
DOBlendableMoveBy
(
new
Vector3
(
-
1
,
0
,
0
),
1
);
//假设起始为(0,0,0),最后动画停止时的坐标就是(0,1,1)
//2)它是增量动画
transform
.
DOBlendableMoveBy
(
new
Vector3
(
1
,
1
,
1
),
1
);
//假设其实点为(1,1,1),最后动画停止时的坐标就是(2,2,2)
//它的参数不是目标点,而是要移动的量
/*以下三个函数同理
transform.DOBlendableRotateBy
transform.DOBlendableScaleBy()
transform.DOBlendablePunchRotation()
*/
}
//(2) Camera拓展方法
private
void
TestCameraFuncAnim
()
{
//1)调整屏幕视角的宽高比 第一个参数是宽高的比值
_camera
.
DOAspect
(
0.6f
,
2
);
//2)改变相机background参数的颜色
_camera
.
DOColor
(
Color
.
blue
,
2
);
//3)改变相机近切面的值
_camera
.
DONearClipPlane
(
200
,
2
);
//4)改变相机远切面的值
_camera
.
DOFarClipPlane
(
2000
,
2
);
//5)改变相机FOV的值
_camera
.
DOFieldOfView
(
30
,
2
);
//6)改变相机正交大小
_camera
.
DOOrthoSize
(
10
,
2
);
//7)按照屏幕像素计算的显示范围
_camera
.
DOPixelRect
(
new
Rect
(
0f
,
0f
,
600f
,
500f
),
2
);
//8)按照屏幕百分比计算的显示范围
_camera
.
DORect
(
new
Rect
(
0.5f
,
0.5f
,
0.5f
,
0.5f
),
2
);
/*
9)相机震动
相机震动效果 参数:持续时间,力量,震动,随机性,淡出
力量:实际就是震动的幅度,可以理解成相机施加的力的大小 使用Vector3可以选择每个轴向不同的强度
震动:震动次数
随机性:改变震动方向的随机值(大小:0~180)
淡出:就是运动最后是否缓慢移动回到原本位置
*/
_camera
.
DOShakePosition
(
1
,
10
,
10
,
50
,
false
);
}
//(3) Material拓展方法
private
void
TestMaterialFuncAnim
()
{
// 1)改变颜色
material
.
DOColor
(
Color
.
black
,
2
);
// 2)按照shader的属性名,修改颜色
material
.
DOColor
(
Color
.
clear
,
"_Color"
,
2
);
// 3)修改alpha值
material
.
DOFade
(
0
,
2
);
// 4)颜色渐变
// Gradient是unity的渐变编辑器(下面有渐变编辑器的图)
// material.DOGradientColor(Gradient, "_Color", 3);
// 5)改变材质offset的值
material
.
DOOffset
(
new
Vector2
(
1
,
1
),
2
);
// 6)改变提供的shader属性的名称对应的Vector4值
material
.
DOVector
(
new
Vector4
(
0
,
0
,
0
,
1
),
"_Color"
,
3
);
// 7)颜色混合
// 跟位置混合动画同理,可以同时执行而不干扰,产生混合在一起的颜色
material
.
DOBlendableColor
(
Color
.
red
,
"_Color"
,
3
);
}
//(4) Text拓展方法
private
void
TestTextFuncAnim
()
{
//头三个都是常规方法,不多介绍了
text
.
DOColor
(
Color
.
black
,
2
);
text
.
DOFade
(
0
,
2
);
text
.
DOBlendableColor
(
Color
.
black
,
2
);
//打字机效果
//是把第一个参数传入的内容按照时间,一个字一个字的输入到文本框中
text
.
DOText
(
"context"
,
2
);
}
//(5) Sequence 队列
private
void
TestSequenceAnim
()
{
Sequence
quence
=
DOTween
.
Sequence
();
//1)添加动画到队列中
quence
.
Append
(
transform
.
DOMove
(
Vector3
.
one
,
2
));
//2)添加时间间隔
quence
.
AppendInterval
(
1
);
//3)按时间点插入动画
//第一个参数为时间,此方法把动画插入到规定的时间点
// 以这句话为例,它把DORotate动画添加到此队列的0秒时执行,虽然它不是最先添加进队列的
quence
.
Insert
(
0
,
transform
.
DORotate
(
new
Vector3
(
0
,
90
,
0
),
1
));
//4)加入当前动画
// Join会加入和让动画与当前正在执行的动画一起执行
//如下两行代码,DOMove会和DOScale一起执行
quence
.
Append
(
transform
.
DOScale
(
new
Vector3
(
2
,
2
,
2
),
2
));
quence
.
Join
(
transform
.
DOMove
(
Vector3
.
zero
,
2
));
//5)预添加动画
// 预添加 会直接添加动画到Append的前面,也就是最开始的时候
//quence.Prepend(transform.DOScale(Vector3.one * 0.5f, 1));
//这里需要特别说一下预添加的执行顺序问题
//它这里也采取了队列的性质,不过,预添加与原本的的队列相比是一个反向队列
//例如:
// Sequence quence = DOTween.Sequence();
//quence.Append(transform.DOMove(Vector3.one, 2));
//quence.Prepend(transform.DOMove(-Vector3.one * 2, 2));
//quence.PrependInterval(1);
//执行顺序是 PrependInterval----Prepend---- - Append
//就是最后添加的会在队列的最顶端
//6)预添加时间间隔
quence
.
PrependInterval
(
1
);
// 回调函数
// 1)预添加回调
quence
.
PrependCallback
(
()
=>
{
Destroy
(
gameObject
);
}
);
// 2)在规定的时间点加入回调
quence
.
InsertCallback
(
1
,
()
=>
{
Destroy
(
gameObject
);
}
);
//3)添加回调
quence
.
AppendCallback
(
()
=>
{
Destroy
(
gameObject
);
}
);
}
//(6) Tweener的设置
private
void
SetterTweener
()
{
TweenParams
para
=
new
TweenParams
();
// 1)设置动画循环
// 第一个参数是循环次数 - 1代表无限循环
// 第二个参数是循环方式
// Restart 重新开始
// Yoyo 从起始点运动到目标点,再从目标点运动回来,这样循环
//Incremental 一直向着运动方向运动
para
.
SetLoops
(
-
1
,
LoopType
.
Yoyo
);
//2)设置参数
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
SetAs
(
para
);
//3)设置自动杀死动画
transform
.
DOMove
(
Vector3
.
one
,
1
)
.
SetAutoKill
(
true
);
//4)from补间
// 例如;
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
From
(
true
);
//From参数 isRelative(相对的):
//为true,传入的就是偏移量,即当前坐标 + 传入值 = 目标值
//为falese,传入的就是目标值,即传入值 = 目标值
//5)设置动画延时
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
SetDelay
(
1
);
//6)设置动画运动以速度为基准 例如:
transform
.
DOMove
(
Vector3
.
one
,
1
)
.
SetSpeedBased
();
//使用SetSpeedBased时,移动方式就变成以速度为基准
//原本表示持续时间的第二个参数,就变成表示速度的参数,每秒移动的单位数
//7)设置动画ID
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
SetId
(
"Id"
);
//8)设置是否可回收
// 为true的话,动画播放完会被回收,缓存下来,不然播完就直接销毁
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
SetRecyclable
(
true
);
//9)设置动画为增量运动
//例如:
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
SetRelative
(
true
);
//SetRelative参数 isRelative(相对的):
//为true,传入的就是偏移量,即当前坐标 + 传入值 = 目标值
//为falese,传入的就是目标值,即传入值 = 目标值
//10)设置动画的帧函数
//例如:
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
SetUpdate
(
UpdateType
.
Normal
,
true
);
//第一个参数 UpdateType :选择使用的帧函数
//UpdateType.Normal:更新每一帧中更新要求。
//UpdateType.Late:在LateUpdate调用期间更新每一帧。
//UpdateType.Fixed:使用FixedUpdate调用进行更新。
//UpdateType.Manual:通过手动DOTween.ManualUpdate调用进行更新。
//第二个参数:为TRUE,则补间将忽略Unity的Time.timeScale
}
//(7) 运动曲线的设置
private
void
TestEaseFuncAnima
()
{
//关于Ease缓动函数的说明
/*
* 基本概念说明:
* 缓动函数是指动画效果在执行时的速度,使其看起来更加真实。
* Ease.InSine 表示正弦加速动作
* Ease.OutSine 表示正弦减速动作
* Ease.InOutSine 表示正弦加速减速动作
* 每个效果都分3种缓动方式:
* (1).easeIn:从0开始加速的缓动
* (2).easeOut:减速到0的缓动
* (3).easeInOut:前半段从0开始加速,后半段减速到0的缓动
* 其中Linear是线性缓动,也叫无缓动效果,没有上述说明中的效果。
*/
//线性缓动,匀速运动
//transform.DOMove(new Vector3(0, 5, 0), 2).SetRelative().SetLoops(-1, LoopType.Yoyo).SetEase(Ease.Linear);
//先快后慢正弦运动
transform
.
DOMove
(
new
Vector3
(
0
,
5
,
0
),
2
)
.
SetRelative
()
.
SetLoops
(
-
1
,
LoopType
.
Yoyo
)
.
SetEase
(
Ease
.
InOutSine
);
}
//(8) 动画回调事件
private
void
TestCallBack
()
{
//1)动画完成回调
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
OnComplete
(()
=>
{
});
//2)动画被杀死时回调
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
OnKill
(()
=>
{
});
//3)动画播放时回调,暂停后重新播放也会调用
transform
.
DOMove
(
Vector3
.
one
,
3
)
.
OnPlay
(()
=>
{
});
//4)动画暂停时回调
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
OnPause
(()
=>
{
});
//5)动画回退时回调
// 以下情况会被调用
//使用DORestart重新播放时
//使用Rewind倒播动画完成时
//使用DOFlip翻转动画完成时
//使用DOPlayBackwards反向播放动画完成时
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
OnRewind
(()
=>
{
});
//6)只在第一次播放动画时调用,在play之前调用
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
OnStart
(()
=>
{
});
//7)完成单个循环周期时触发
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
OnStepComplete
(()
=>
{
});
//8)帧回调
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
OnUpdate
(()
=>
{
});
//9)在路径动画时,改变目标点时的回调,参数为当前目标点的下标
transform
.
DOMove
(
Vector3
.
one
,
2
)
.
OnWaypointChange
((
value
)
=>
{
});
}
//(9) 动画控制方法
private
void
TestAnimatorController
()
{
//1)播放
transform
.
DOPlay
();
//2)暂停
transform
.
DOPause
();
// 3)重播
transform
.
DORestart
();
// 4)倒播,此方法会直接退回起始点
transform
.
DORewind
();
// 5)平滑倒播,此方法会按照之前的运动方式从当前位置退回起始点
transform
.
DOSmoothRewind
();
// 6)杀死动画
transform
.
DOKill
();
// 7)翻转补间的方向
transform
.
DOFlip
();
// 8)跳转时间点
// 第一个参数跳转的时间点,第二个参数是跳转后是否播放动画
transform
.
DOGoto
(
1.5f
,
true
);
// 9)反向播放动画
// 反向播放动画,在动画播放到一半时执行,会退回起始点,在一开始执行看不到效果是因为,物体本身就在起始点
transform
.
DOPlayBackwards
();
// 10)正向播放动画
// 正向播放动画
transform
.
DOPlayForward
();
// 11)TogglePause
// 当暂停时,执行就继续播放,播放时,执行就暂停
transform
.
DOTogglePause
();
}
private
void
GetTweenerDat
()
{
// 一、类方法
//1)返回所有暂停的动画,没有则返回null
DOTween
.
PausedTweens
();
//2)返回所有真正播放的动画,没有则返回null
DOTween
.
PlayingTweens
();
//3)获取给定ID的数组
//例如:
DOTween
.
TweensById
(
"id"
,
true
);
//返回满足条件的动画数组
//第一个参数是动画的ID
//第二个参数是是否只收集正在播放的动画
//4)返回给定对象的数组
//例如:
DOTween
.
TweensByTarget
(
transform
,
true
);
//返回满足条件的动画数组
//第一个参数是播放动画的对象
//例如:transform.DOMove(Vector3.one, 2); 第一个参数就传入transform
// material.DOColor(Color.White, 2); 第一个参数就传入材质对象material
//第二个参数是是否只收集正在播放的动画
//5)收集传入的对象是否有动画在活动
//例如:
DOTween
.
IsTweening
(
transform
);
//第一个参数为检测的对象
//第二个参数为是否检测动画在播放状态
//为true时,给定对象在播放状态时 返回true
//为false时,只检测给定对象是否有动画(在pause状态时也算)有则返回true
// 6)正在播放的动画的总数,目前处于延迟播放状态的动画也算
DOTween
.
TotalPlayingTweens
();
// 二、实例方法
_tweener
=
transform
.
DOMove
(
Vector3
.
one
,
2
);
//1)表示动画执行时间的属性,可读可写
_tweener
.
fullPosition
=
1
;
// 2)表示动画执行完的次数
_tweener
.
CompletedLoops
();
// 3)获取动画的延迟时间
_tweener
.
Delay
();
// 4)获取动画的持续时间
// 参数为true 表示计算循环的时间,无限循环为Infinity
_tweener
.
Duration
(
false
);
//5)动画已播放的时间
// 参数为true 表示计算循环的时间
_tweener
.
Elapsed
();
//6)返回动画进度的百分比
// 起始点为0 目标点为1 当yoyo循环模式下,值会从0变到1再从1变到0
_tweener
.
ElapsedDirectionalPercentage
();
//7)返回动画区间已用的百分比
//单次循环的数值为0到1
//参数为 是否包含循环 为true时 返回值是循环总区间的已用百分比 若为无限循环 返回值为0
_tweener
.
ElapsedPercentage
(
true
);
//8)动画是否在活动
_tweener
.
IsActive
();
// 9)是否是反向动画
_tweener
.
IsBackwards
();
//10)动画是否完成
_tweener
.
IsComplete
();
//11)是否以初始化
_tweener
.
IsInitialized
();
//12)是否正在播放
_tweener
.
IsPlaying
();
//13)返回循环次数, 无限循环为Infinity
_tweener
.
Loops
();
}
//协程方法
private
IEnumerator
Wait
()
{
_tweener
=
transform
.
DOMove
(
Vector3
.
one
,
2
);
// 1)等待动画执行完
yield
return
_tweener
.
WaitForCompletion
();
//2)等待指定的循环次数
//参数为执行次数,等待传入的循环次数后,继续执行
//若是传入的次数大于动画的循环次数 则在动画结束时继续执行
yield
return
_tweener
.
WaitForElapsedLoops
(
2
);
//3)等待动画被杀死
yield
return
_tweener
.
WaitForKill
();
//4)等待动画执行指定时间
//参数为时间,动画执行传入的时间之后或动画执行完毕,继续执行
yield
return
_tweener
.
WaitForPosition
(
0.5f
);
//5)等待动画回退
// 以下情况会继续执行函数
//使用DORestart重新播放时
//使用Rewind倒播动画完成时
//使用DOFlip翻转动画完成时
//使用DOPlayBackwards反向播放动画完成时
yield
return
_tweener
.
WaitForRewind
();
// 6)等待Start执行后继续执行
yield
return
_tweener
.
WaitForStart
();
}
}
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/AllinToyou/article/detail/89878
推荐阅读
article
Unity
——
DOTween
插件
使用方法简介_
unity
dotween
等待时间
...
例子演示:
DOTween
移动缓动动画既是一种编程技术,也是一种动画的设计思路。从设计角度来看,可以有以下描述采用上述思路...
赞
踩
article
dotween
unity
延时
_u3d:强大
的
dotween
。使用
dotween
处理
延时
问题
,
最最...
dotween
仅仅只有300kb左右
,
但是能实现很多功能
简单
但是处理起来麻烦
的
问题第一:
延时
n秒执行一个事件方法一:使用...
赞
踩
article
浅谈补间动画
Unity
补间动画(
DOTween
)
_
dotween
等待
...
用之前需要引用命名空间using DG.Tweening;//位移 transform.DOMoveX(5, 2); ...
赞
踩
article
DOTween
-
Ease
缓动函数_
dotween
animationcurve
.
easeinout
...
Ease
.InQuad 不知道Quad代表什么意思
Ease
.InQuart 有1/4的时间是没有缓动。
Ease
.In...
赞
踩
article
Unity
插件
DOTween
使
用
方法_
unitydotween
怎么
用
...
DOTween
使
用
方法using
Unity
Engine;using System.Collections;using...
赞
踩
article
Unity
插件
学习——
DOTween
(一)
_
tk2dbasesprite
...
了解
DOTween
特性和基本用法。
_
tk2dbasesprite
tk2dbasesprite
...
赞
踩
article
【
Unity3D
插件】
DoTween
插件
(
三
)
_
allkill
dotween
...
您有 3 种方法来操作补间。它们都共享相同的方法名称,除了具有附加前缀的快捷方式增强的方法名称。A. 通过静态方法和过滤...
赞
踩
article
Dotween
插件
方法
及
API
解析_
dotween
是否
为空...
using System.Collections;using UnityEngine;using DG.Tweening...
赞
踩
相关标签
unity
游戏引擎
dotween unity 延时
c#
函数
DOTween
Unity Dotween
插件
DoTween
Dotween
C#
Unity