Unity中使用LineRenderer时,在代码中不能设置点位数量

Unity中使用LineRenderer时,在代码中不能设置点位数量
代码:


public LineRenderer line1, line2, line3;  
void ShowTrail2()
    {
        line2.positionCount = 10; 
        line2.SetPosition(trail2Num - 1, trail_points2[trail2Num - 1]);
    }

其他代码一切正常,调用该函数时,就执行不下去。
请问这是为什么呢,怎么解决

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/698228
  • 你也可以参考下这篇文章:Unity画一条线,使用LineRenderer
  • 除此之外, 这篇博客: Unity中使用LineRenderer实现鼠标点击移动场景中画线中的 使用Unity原生LineRenderer+Edge  Collider2D实现在2D场景中画线并带碰撞体。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    我们先来看看效果

  • 以下回答由chatgpt基于相关博客总结生成:

    问题分析: 根据参考资料中提供的信息,LineRenderer是一种用于在Unity中绘制线的工具。可以使用一个点的数组来确定线条的形状和位置。在代码中设置LineRenderer的点位数量可能会导致无法执行的问题。

    解决方法: 目前Unity官方并没有直接提供在代码中设置LineRenderer点位数量的方法。但我们可以利用一些技巧来实现这个目标。具体的解决方法如下所示:

    1. 在代码中创建一个LineRenderer组件对象。
    LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer>();
    
    1. 创建一个空的点位数组,并设置到LineRenderer的positionCount属性中。可以根据具体的需求设置点位数量。
    Vector3[] positions = new Vector3[点位数量];
    lineRenderer.positionCount = 点位数量;
    
    1. 设置点位数组中每个点位的位置。可以通过循环遍历来设置每个点位的位置坐标。
    for (int i = 0; i < 点位数量; i++)
    {
        // 设置每个点位的位置坐标
        positions[i] = new Vector3(X坐标, Y坐标, Z坐标);
        // 设置LineRenderer中对应点位的位置
        lineRenderer.SetPosition(i, positions[i]);
    }
    
    1. 根据具体需求,可以设置其他LineRenderer的属性,如宽度、颜色等。
    lineRenderer.startWidth = 开始宽度;
    lineRenderer.endWidth = 结束宽度;
    lineRenderer.startColor = 开始颜色;
    lineRenderer.endColor = 结束颜色;
    

    通过以上步骤,我们可以在代码中设置LineRenderer的点位数量,并且继续执行后续的操作。

    注意事项: 1. 在设置点位数量之前,确保已经添加了LineRenderer组件到相应的游戏对象中。 2. 点位数量应大于1,否则将无法绘制线条。


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