Ошибка 'LineRenderer' does not contain a definition for 'positionCount'

Создаю 2D платформер, сейчас стоит задача сделать прорисовку линии полёта гранаты. Для этого создал пустой объект, на него добавил элемент LineRenderer и в коде этого объекта пишу следующее:

private LineRenderer lineRendererComponent;

private void Start()
{
    lineRendererComponent = GetComponent<LineRenderer>();
}
public void ShowTraectory(Vector2 origin, Vector2 speed)
{
    Vector3[] points = new Vector3[40];
    lineRendererComponent.positionCount = points.Length;
    for (int i = 0; i < points.Length; i++)
    {
        float t = i * 0.1f;
        points[i] = origin + speed * t + Physics2D.gravity * t * t / 2f;
    }
    lineRendererComponent.SetPosition(points);
}

Здесь origin - положение игрока (начальное положение гранаты), speed - скорость гранаты.

По идее, должно работать. Но выдается ошибка:

'LineRenderer' does not contain a definition for 'positionCount' and no accessible extension method 'positionCount' accepting a first argument of type 'LineRenderer' could be found (are you missing a using directive or an assembly reference?)

И выделяется в VS красным: "positionCount" и "SetPosition"

Если кто-то знает, как можно исправить, буду крайне благодарен, уже долго мучаюсь над этой ошибкой!!! Или, может быть, можно сделать прорисовку линии каким-то другим способом...


Ответы (1 шт):

Автор решения: NeznaykaVshapke

Наконец-то нашёл решение ошибки!!!

Необходимо было показывать UNITY, что LineRenderer это не просто придуманное мной название, а компонент системы: UnityEngine.LineRenderer

using UnityEngine;

public class TraectoryRenderer : MonoBehaviour { private UnityEngine.LineRenderer lineRendererComponent;

private void Start()
{
    lineRendererComponent = GetComponent<UnityEngine.LineRenderer>();
}
public void ShowTraectory(Vector2 origin, Vector2 speed)
{
    Vector3[] points = new Vector3[40];
    lineRendererComponent.positionCount = points.Length;
    for (int i = 0; i < points.Length; i++)
    {
        float t = i * 0.1f;
        points[i] = origin + speed * t + Physics2D.gravity * t * t / 2f;
        lineRendererComponent.SetPosition(i,points[i]);
    }
    
}

}

→ Ссылка