DOTween插件DOPath()方法制作自定义导航路径

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");
    }

猜你喜欢

转载自blog.csdn.net/m0_71624363/article/details/132010344