Unity linerenderer 绘制轨迹画轨迹出现很多全为0的点

我在使用 linerenderer 绘制轨迹的时候,总是会出现一些坐标全为0的点,但实际传入的坐标中并没有这些点,请问怎么解决

img


我的部分代码如下:

void Update()
{
  if (trail2_Flag == 1)
        {
            if ((lastPoint2 == new Vector3(0, 0, 0)) || (lastPoint2 == null))
            {
                goto esc;
            }   
            if (trail_points2.Count > 0)
            {
                line2.positionCount = trail_points2.Count;
                //UnityEngine.Debug.Log(trail_points2[trail_points2.Count-1]);
                //UnityEngine.Debug.Log("lastPoint2 : " + lastPoint2);
                line2.SetPosition(trail_points2.Count - 1, lastPoint2);          
            }
            trail2_Flag = 0;
            esc:;          
        }
}
void Par(string recv)
{
        trail_points2.Add(new Vector3((float)decimal.ToDouble(latitude_2), 
            0, (float)decimal.ToDouble(longitude_2)));        
        trail2_Flag = 1;
        trail2end:;
}
public Vector3 lastPoint2
    {
        get
        {
            return (trail_points2[trail_points2.Count - 1]);            
        }
    }

不知道啊

Goto语句:在Update函数中,当lastPoint2的值为(0, 0, 0)或null时,代码会跳转到esc标签,这可能导致了一些坐标为0的点被添加到trail_points2中。请检查是否需要使用goto语句,或者考虑使用其他控制结构来处理这种情况。
坐标添加:在Par函数中,根据代码中的trail_points2.Add语句,您将坐标(latitude_2, 0, longitude_2)添加到trail_points2中。请确保这些坐标的值是正确的,没有被错误地设置为0。
索引越界:在lastPoint2的get访问器中,您使用了trail_points2[trail_points2.Count - 1]来获取最后一个点的坐标。如果trail_points2为空,或者trail_points2.Count为0,将导致索引越界,可能返回了一个坐标为0的点。请确保在访问trail_points2之前进行了正确的空值检查。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^