Dotween动画有关记录

1:路径动画,给一个路径,让物体沿着路径运动,Dotween实现
在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
using System.Linq;
public class Dotween_demo : MonoBehaviour
{
    public Transform[] pos;
    public Transform move;
    void Start()
    {
        //使用select需要引入命名空间using System.Linq;
        var poss = pos.Select(u => u.position).ToArray();
        move.DOPath(poss, 7f, PathType.CatmullRom, PathMode.Full3D).SetEase(Ease.Linear).SetOptions(true).SetLookAt(0).SetLoops(-1,LoopType.Restart);
    }

}

有关参数解释:
PathType.CatmullRom(路径设置成曲线的)
PathType.Linear(路径设置成直线的)

(移动物体的lookat限制)
PathMode.Full3D
PathMode.Ignore

SetOptions(true)(是否闭合路径)

2: UIText的动画

void fun2()
    {
    //在5秒内显示完“abcdefghijklmn”,Text的播放动画
        text.DOText("abcdefghijklmn", 5f);
    }

3:动画队列的执行情况
使用dotween的动画队列执行动画,就是在一个时间内执行很多动画,按照顺序将这些动画加入到动画队列中(有些动画同一时间执行,有些动画是上一个动画执行完毕后执行)

同一时间执行两个动画,有insert和join方法,两者的区别在脚本中有写到

public Transform moveA;
    public Transform moveB;
    /// <summary>
    /// dotween队列动画
    /// </summary>
   void fun3()
    {
        //A--》x移动60---2秒
        //等待1秒
        //A-->x移动到0,同时Bx移动-60----1秒
        //B-->x移动到0,1秒
        //新建一个队列
        Sequence sq = DOTween.Sequence();
        //A移动
        sq.Append(moveA.DOLocalMoveX(60, 2f));
        //等待1秒
        sq.AppendInterval(1f);
        //AB同时移动
        sq.Append(moveA.DOLocalMoveX(0, 1f));
        sq.Join(moveB.DOLocalMoveX(-60, 1f));
        //B移动
        sq.Append(moveB.DOLocalMoveX(0, 1f));
    }
    void fun4()
    {
        //A--》x移动60---2秒
        //等待1秒
        //A-->x移动到0,同时Bx移动-60----1秒
        //B-->x移动到0,1秒
        //新建一个队列
        Sequence sq = DOTween.Sequence();
        //A移动
        sq.Append(moveA.DOLocalMoveX(60, 2f));
        //等待1秒
        sq.AppendInterval(1f);
        //AB同时移动
        sq.Append(moveA.DOLocalMoveX(0, 1f));
        //insert方法,整个队列插入在3秒以后开始执行
        sq.Insert(3,moveB.DOLocalMoveX(-60, 1f));
        //B移动
        sq.Append(moveB.DOLocalMoveX(0, 1f));
    }

4:队列加入回调方法,两种方法,个人感觉AppendCallback比较好用一点

  //队列加入回调方法,两种方法,个人感觉AppendCallback比较好用一点
    void fun5()
    {
        Sequence sq = DOTween.Sequence();
        sq.AppendInterval(1f);
        sq.AppendCallback(() => {
            print("第一种方法,appendCallback,在上一个动画执行完毕后执行这个");
        });
        sq.InsertCallback(1f, () => {
            print("第二种方法:在整个队列执行到1f时,执行这个");
        });
    }

5:预添加方法 :Prepend

  //简单使用 prepend,((prepend和Append不同之处就是,append从前往后执行,prepend是从后往前执行
    void fun6()
    {
        Sequence sq = DOTween.Sequence();
        sq.Prepend(this.transform.DOScale(1, 0.2f));
        sq.PrependInterval(1f);
        sq.PrependCallback(() => {

        });
    }
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yffgamestart

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值