DOTween路径动画

DOTween路径动画

代码如下:

using DG.Tweening;
using DG.Tweening.Core;
using DG.Tweening.Plugins.Core.PathCore;
using DG.Tweening.Plugins.Options;
using UnityEngine;
using UnityEngine.UI;

public class DoPath : MonoBehaviour
{
    public TweenerCore<Vector3, Path, PathOptions> tweenerCore;
    public float speed;
    public Slider slider;

    void Start()
    {
        Vector3[] waypoints = new[] { new Vector3(275.3351f, 0f, -157.8602f),  new Vector3(438.2663f, 0f, 79.75027f), new Vector3(381.7242f, 0f, -45.20676f) };//路径点,可通过在DOTween Path组件上制作,复制粘贴得到

        tweenerCore = transform.DOPath(waypoints, 60, PathType.CatmullRom, PathMode.Full3D, 10).SetAutoKill(false);//设置路径,持续时间,路线模式等

        tweenerCore.SetLookAt(0);//设置看向的方向,0表示看向前方
        tweenerCore.SetDelay(2f);//设置延迟开始的时间
        tweenerCore.SetEase(Ease.Linear);//设置速度模式,Linear为匀速
        tweenerCore.SetLoops(-3);//设置循环次数,负数为无限循环
        tweenerCore.SetId(0);
        tweenerCore.SetUpdate(UpdateType.Normal);
        tweenerCore.SetAutoKill(false);
        tweenerCore.SetTarget(5);
        tweenerCore.SetSpeedBased(true);
        tweenerCore.SetOptions(true, AxisConstraint.None);//设置路线是否为闭合

        tweenerCore.Pause();//暂停动画

        slider.onValueChanged.AddListener((value) => { speed = value * 10; });
    }

    void Update()
    {
        tweenerCore.timeScale = speed;//设置路径动画速度
    }

    public void Play()
    {
        tweenerCore.Play();//开始路径动画
    }
}
//需下载DOTween插件
//通过DOTween Path组件制作路径
//将本脚本挂载在需移动的物体上

  

  

posted @ 2024-02-28 17:36  gatran  阅读(77)  评论(0编辑  收藏  举报