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组件制作路径 //将本脚本挂载在需移动的物体上