Динамически добавленный LineRenderer не отображается в представлении игры - PullRequest
0 голосов
/ 13 октября 2019

Я добавляю некоторые строки динамически, и они отлично отображаются в виде сцены, но не в виде игры. Z индексы установлены правильно, я использую другой слой только для линий. Я попытался изменить значения плоскостей отсечения камеры, маска отбраковки есть для всего.

unity screenshot

void Update()
{
    Vector2 mousePos;

    if (Input.GetMouseButtonDown(0))
    {
        Vector3 closeToPoint = IsClickCloseToPoint();

        if (closeToPoint.z != -10000f)
        {
            GameObject newObj = Instantiate(lineGenerator);
            startMousePos = closeToPoint;
            newLine = newObj.GetComponent<LineRenderer>();
            newLine.transform.SetParent(parentObject.transform);
            newLine.positionCount = 2;
        }
    }

    if (Input.GetMouseButton(0))
    {
        if (newLine != null)
        {
            mousePos = Input.mousePosition;
            newLine.SetPosition(0, new Vector3(startMousePos.x, startMousePos.y, -5f));
            newLine.SetPosition(1, new Vector3(mousePos.x, mousePos.y, -5f));
            distance = (mousePos - startMousePos).magnitude;
            distanceText.text = distance.ToString("F2");
        }
    }

    if (Input.GetMouseButtonUp(0))
    {
        if (newLine != null)
        {
            newLine = null;
        }
    }
}

Ответы [ 4 ]

1 голос
/ 13 октября 2019

Вы рисуете все на холсте. Но LineRenderer не является компонентом пользовательского интерфейса и поэтому не отображается на холсте.

Если вы хотите работать с LineRenderer, все же отметьте эту информацию в Ответах Unity. Основная идея состоит в том, чтобы настроить холст как экранное пространство и увеличить ширину линий. Не забудьте назначить камеру.

0 голосов
/ 14 октября 2019

Я не вижу настройки Инспектора вашего LinRenderer, но я подозреваю, что у вас

Alignment установлено на Transform Z

Линии обращены к оси Z компонента Transform.

И это становится полностью невидимым, если ваша орфографическая камера смотрит на нее точно в направлении Z.

Попробуйте изменитьот Alignment до View.


Также обратите внимание, что буквально ничто отображается поверх холста наложения ScreenSpace. Это одна из последних вещей , которые должны быть отображены в кадре.

0 голосов
/ 13 октября 2019

Проблема заключалась в том, что координаты отличаются в виде сцены и виде игры, или, по крайней мере, вы должны проектировать вид игры, а не вид сцены. Мои линии присутствовали в игровом окне, но их не было на холсте. Я использовал Camera.main.ScreenToWorldPoint (Vektor3) для конвертации каждого вектора.

0 голосов
/ 13 октября 2019

Я думаю, вам нужно поместить материал в lineRenderer. То, что вы видите на виде сцены, это «нематериальная» текстура, которая не отображается на экране игры :) Надеюсь, это поможет :) Raph

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...