DoTween常用示例——2

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()
    {
        
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值