Как получить плавную линию через Line Renderer в единстве? - PullRequest
1 голос
/ 23 января 2020

Image of Lines taken from u[![enter image description here nity] 2 ] 2

Линия Нарисована с помощью движения мыши, но кривые не совсем плавные, и все в этом роде линии выглядит очень некрасиво. Я пытался изменить настройки линейного рендерера, но ничего не помогает. Я застрял здесь и мне нужна поддержка ... Ниже я также упомянул код ... enter image description here

public GameObject linePrefab;
public GameObject currentLine;
public LineRenderer lineRenderer;
public EdgeCollider2D edgeCollider;
public List<Vector2> fingerPosition;
void Update()
{
    if(Input.GetMouseButtonDown(0))
    {
        CreateLine();
    }
    if(Input.GetMouseButton(0))
    {
        Vector2 tempFingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        if(Vector2.Distance(tempFingerPos, fingerPosition[fingerPosition.Count -1]) > 0.1f)
        {
            UpdateLine(tempFingerPos);
        }
    }

}
void CreateLine()
{
    currentLine = Instantiate(linePrefab, Vector3.zero, Quaternion.identity);
    lineRenderer = currentLine.GetComponent<LineRenderer>();
    edgeCollider = currentLine.GetComponent<EdgeCollider2D>();
    fingerPosition.Clear();
    fingerPosition.Add(Camera.main.ScreenToWorldPoint(Input.mousePosition));
    fingerPosition.Add(Camera.main.ScreenToWorldPoint(Input.mousePosition));
    lineRenderer.SetPosition(0, fingerPosition[0]);
    lineRenderer.SetPosition(1, fingerPosition[1]);
    edgeCollider.points = fingerPosition.ToArray();
}
void UpdateLine(Vector2 newFingerPos)
{
    fingerPosition.Add(newFingerPos);
    lineRenderer.positionCount++;
    lineRenderer.SetPosition(lineRenderer.positionCount - 1, newFingerPos);
}

Ответы [ 2 ]

1 голос
/ 26 января 2020

Попробуйте наложить текстуру на ваш материал, который вы используете для визуализации линии. Текстура ниже. Он выглядит белым здесь, но если вы откроете его в новой вкладке, вы увидите. Это поможет с наложением на границы линий.

line texture

0 голосов
/ 27 января 2020

Вы можете попробовать использовать алгоритм для сглаживания линии при рисовании, такой как Catmull-rom или Bezier, но фактически единственный способ сделать ее более гладкой - это добавить больше точек.

Здесь ТАК вопрос, который может помочь с сплайнами CR

...