04.动画队列

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_33950757/article/details/102692648

01.创建动画队列

 //方式1
 Sequence sequence=DOTween.Sequence();
 //方式2
  DOTween.Sequence().Append()

02.使用

 Sequence sequence = DOTween.Sequence();
        sequence.Append(transform.DOMoveX(5, 2f)); //x先移动到5
        sequence.AppendInterval(1f); //暂停1秒
        sequence.Append(transform.DOMoveY(5, 2f));//y移动到5       

在这里插入图片描述
03.插入动画

 Sequence sequence = DOTween.Sequence();
        sequence.Append(transform.DOMoveX(5, 2f)); //0-2秒 x先移动到5
        sequence.AppendInterval(1f); //2-3秒 暂停1秒
        sequence.Append(transform.DOMoveY(5, 2f));// 3-5秒 y移动到5

        //插入动画 参数 01 插入的时间点,覆盖队列之前0-2秒的时间  02 动画
        sequence.Insert(0, transform.DOMoveX(-2, 2f));

在这里插入图片描述
sequence.Insert()还可以插入到 动画队列时间点以外的

//七秒之后做动画
sequence.Insert(7, transform.DOMoveX(-2, 1f));

04.加入方法

 Sequence sequence = DOTween.Sequence();
        sequence.Append(transform.DOMoveX(5, 2f)); //0-2秒 x先移动到5
        sequence.Join(transform.DOScale(Vector3.one * 2, 2f)); //加入到上一个动画同时运行
        
        sequence.AppendInterval(1f); //2-3秒 暂停1秒
        
        sequence.Append(transform.DOMoveY(5, 2f));// 4-6秒 y移动到5
        sequence.Join(transform.DOScale(Vector3.one , 2f)); //加入到上一个动画同时运行
  //或者插入动画
  //sequence.Insert(0, transform.DOScale(Vector3.one*2,  2f));
  //sequence.Insert(3, transform.DOScale(Vector3.one , 2f));

在这里插入图片描述

05.预添加方法
后添加的会先执行
在这里插入图片描述

  Sequence sequence = DOTween.Sequence();
        sequence.Append(transform.DOMoveX(5, 2f)); //0-2秒 x先移动到5
        sequence.Join(transform.DOScale(Vector3.one * 2, 2f)); //加入到上一个动画

        sequence.AppendInterval(1f); //2-3秒 暂停1秒
        sequence.Append(transform.DOMoveY(5, 2f));// 4-6秒 y移动到5
        sequence.Join(transform.DOScale(Vector3.one , 2f)); //加入到上一个动画

        
        //预添加最先执行先改变z轴 后暂停1秒
        sequence.PrependInterval(1f);
        sequence.Prepend(transform.DOMoveZ(1, 1f));

在这里插入图片描述
06.回调函数

 void Start()
    {
        Sequence sequence = DOTween.Sequence();
        sequence.Append(transform.DOMoveX(5, 2f)); //0-2秒 x先移动到5
        sequence.AppendCallback(AppendCallback);// 2秒动画完成回调

        sequence.AppendInterval(1f); //2-3秒 暂停1秒
        sequence.Append(transform.DOMoveY(5, 2f));// 4-6秒 y移动到5
        sequence.AppendCallback(AppendCallback2);// 5秒动画完成回调

        sequence.InsertCallback(6,InsertCallback);

    }

    private void AppendCallback()
    {
        Debug.Log("2秒动画完成");
    }

    private void AppendCallback2()
    {
        Debug.Log("5秒动画完成");
    }

    private void InsertCallback()
    {
        Debug.Log("6秒动画完成");
    }

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_33950757/article/details/102692648