public class DoTweenTest : MonoBehaviour
{
private Tween mTweener;
void Start()
{
//SetLoops//
//路径:开始位置->目标位置->开始位置->目标位置 共3秒时间
transform.DOMove(Vector3.one, 3).SetLoops(3, LoopType.Yoyo);
//路径:走到vec.one*1位置停顿 再走vec.one*2停顿 共持续3秒
transform.DOMove(Vector3.one, 3).SetLoops(3, LoopType.Incremental);
//路径:走到vec.one位置 闪现回到起始位置 共持续3秒
transform.DOMove(Vector3.one, 3).SetLoops(3, LoopType.Restart);
//DOMove拓展方法//
//反向动画,从目标值到当前位置,开始是闪现过去的
transform.DOMove(Vector3.one, 3).From();
//反向动画,增量,目标值 = 当前位置 + 传入值
transform.DOMove(Vector3.one, 3).From(true);
//延迟3秒
transform.DOMove(Vector3.one, 2).SetDelay(3);
//同样增量运动 目标值 = 当前位置 + 传入值
transform.DOMove(Vector3.one, 3).SetRelative(true);
//回调函数//
transform.DOMove(Vector3.one, 2).OnComplete(() => { Debug.Log("完成时执行"); });
transform.DOMove(Vector3.one, 2).OnKill(() => { Debug.Log("杀死时执行"); });
transform.DOMove(Vector3.one, 2).OnStart(() => { Debug.Log("第一次播放时执行,在OnPlay之前"); });
transform.DOMove(Vector3.one, 2).OnPlay(() => { Debug.Log("播放时执行"); }); //暂停再播放还有
transform.DOMove(Vector3.one, 2).OnPause(() => { Debug.Log("暂停时执行"); });
transform.DOMove(Vector3.one, 2).OnStepComplete(() => { Debug.Log("完成一个循环周期执行"); });
transform.DOMove(Vector3.one, 2).OnUpdate(() => { Debug.Log("每帧调用"); });
//动画控制相关//
transform.DOPlay();
transform.DOPause();
transform.DORestart();
transform.DORewind(); //倒播 闪现回到起点
transform.DOKill();
transform.DOFlip();//反转补件方向
transform.DOGoto(1.5f, true); //调转到对应时间点,为true将播放动画
transform.DOPlayBackwards(); //反向动画
transform.DOPlayForward();
transform.DOTogglePause(); //当前暂停/播放时就播放/暂停
//动画数据相关//
DOTween.PausedTweens(); //返回所有暂停动画 木有null
DOTween.PlayingTweens(); //返回所有播放动画 木有null
DOTween.TweensById("ID", true); // 返回动画 true为是否只返回播放中的动画
DOTween.TweensByTarget(transform, true); //返回transform的动画 true为是否只返回播放中的动画
DOTween.IsTweening(transform, true); //检查动画是否在播放状态 true为检查播放状态的, false暂停的也算
DOTween.TotalPlayingTweens(); //正在播放的总数, 延迟的也算
//动画实例方法相关//
mTweener = transform.DOMove(Vector3.one, 5);
print(mTweener.fullPosition); //播放的时间进度 0s~2s
print((mTweener.CompletedLoops())); //动画执行完几次
print(mTweener.Delay()); //动画延迟的时间
print(mTweener.Duration()); //动画持续时间
print(mTweener.ElapsedDelay()); //动画已执行了多长时间
print(mTweener.ElapsedDirectionalPercentage()); //动画播放进度 当LoopType.Yoyo时将会在 0~1浮动
print(mTweener.IsActive()); //是否在活动 ???
print(mTweener.IsBackwards()); //是否是倒播
print(mTweener.IsComplete()); //是否完成
print(mTweener.IsInitialized()); //是否初始化
print(mTweener.IsPlaying()); //是否正在播放
print(mTweener.Loops()); //循环次数
//还有DOPath以后用到了再学吧//
}
private IEnumerator TweenWait()
{
yield return mTweener.WaitForCompletion(); //完成或杀死时
yield return mTweener.WaitForElapsedLoops(10); //循环10次后, 如果传入的10大于循环次数,则在结束执行
yield return mTweener.WaitForKill(); //等待杀死;
yield return mTweener.WaitForPosition(2.5f); //传入的是时间,2.5秒 后执行
yield return mTweener.WaitForStart(); //开始
}
private void Update()
{
}
}
DoTween常用示例——2
最新推荐文章于 2022-08-11 10:14:09 发布