部件之间前后关系两两线性运动。
导入dotween插件
参考脚本
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class DoPathLinearMove : MonoBehaviour
{
public static float speed = 1.0f;
private Transform selfPos;
public Transform nextPos;
// Start is called before the first frame update
void Start()
{
if (nextPos != null)
{
selfPos = this.transform;
Vector3[] positions = new Vector3[] { selfPos.position, nextPos .position};
transform.DOPath(positions, 10*1.0f/speed, PathType.Linear, PathMode.Full3D, 10, Color.green).SetLoops(-1).SetLookAt(0).SetEase(Ease.Linear);
}
//SingletonUnity<StepWindow>.Instance.RefreshSpeed += RefreshSpeed;
}
public void RefreshSpeed()
{
transform.DOKill();
if (nextPos != null)
{
selfPos = this.transform;
Vector3[] positions = new Vector3[] { selfPos.position, nextPos.position };
transform.DOPath(positions, 10 * 1.0f / speed, PathType.Linear, PathMode.Full3D, 10, Color.green).SetLoops(-1).SetLookAt(0).SetEase(Ease.Linear);
}
}
}
最终的节点位置最好隐藏。
每个节点放入下一节点位置。
测试。