DOTween插件DOPath()自定义路径:
Transform位置为路径点位
方法1:
public Transform[] pathNodes; // 路径节点数组
private void Start()
{
// 创建路径
Vector3[] path = new Vector3[pathNodes.Length];
for (int i = 0; i < pathNodes.Length; i++)
{
path[i] = pathNodes[i].position;
}
// 使用DOTweenPath进行寻路动画
/*
*
*/
transform.DOPath(path, 5f, PathType.Linear, PathMode.Full3D)
.SetOptions(false)
.SetLookAt(0.01f) //物体看向路径
.SetEase(Ease.Linear);
}
方法2:
public Transform[] t;
void Start()
{
//路线转换b把Transform转为Vetor3类型
var positions = t.Select(u => u.position).ToArray();
//OnOnComplete()回调效果,用于动画结束时触发
transform.DOPath(positions, 20, PathType.CatmullRom, PathMode.Full3D, 10, Color.yellow).SetOptions(false).OnComplete(Ro);
}
#优化上述脚本
public void Mover(Transform[] tf)
{
//路线转换b把Transform[]转为Vetor3[]类型
var positions = tf.Select(u => u.position).ToArray();
//OnOnComplete()回调效果,用于动画结束时触发
/*
* postions点位
* 第二个参数:完成的时间
* PathType.CatmullRom //设置路径为曲线
* .SetEase (Ease.Linear) //设置运动状态为匀速运动
* .SetLookAt(centerPoint) //设置标题字体一直看向大树
* SetOptions(true); //设置运动路径为闭环,即头尾相连
* Color.yellow 路径颜色
*/
transform.DOPath(positions, 10, PathType.CatmullRom, PathMode.Full3D, 1, Color.yellow).SetOptions(false).SetEase(Ease.Linear).OnComplete(Ro);
}
public void Ro()
{
Debug.Log("调用方法Ro");
}