Bootstrap

unity画线

unity根据点画出一条折线图:1,匀速的从一点到达下一个点,2,不止一个点,3,点随时可能会增加

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CreateLine : MonoBehaviour
{
    public float Speed = 1f;
    public List<Vector3> Points;
    LineRenderer lineRenderer;
    void Start()
    {
        //初始化线
        InitLine();
    }

    void Update()
    {
        DrawLinePlot();
    }

    void InitLine()
    {
        lineRenderer = gameObject.GetComponent<LineRenderer>();
        lineRenderer.SetPosition(0, Vector3.zero);
        lineRenderer.useWorldSpace = false;
        lineRenderer.startWidth = 0.1f;
        lineRenderer.endWidth = 0.1f;
        lineRenderer.numCornerVertices = 4;
    }

    /// <summary>
    /// 画线
    /// </summary>
    void DrawLinePlot()
    {
        if (Points.Count > 0)
        {
            // 当前点
            Vector3 current = lineRenderer.GetPosition(lineRenderer.positionCount - 1);

            Vector3 target;
            target = Points[0];
            //Debug.Log(target);

            // 移动到目标点     
            Vector3 interpolated = Vector3.MoveTowards(current, target, Speed * Time.deltaTime);

            // 设置点的位置
            lineRenderer.SetPosition(lineRenderer.positionCount - 1, interpolated);

            //到达目标点时添加一个新点
            if (target == interpolated)
            {
                lineRenderer.positionCount++;
                lineRenderer.SetPosition(lineRenderer.positionCount - 1, target);

                Points.RemoveAt(0);
            }

        }
    }
}

;