我在使用 linerenderer 绘制轨迹的时候,总是会出现一些坐标全为0的点,但实际传入的坐标中并没有这些点,请问怎么解决
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之前进行了正确的空值检查。
我们先来看看效果