Unity LineRenderer - невозможно получить ссылку - PullRequest
0 голосов
/ 18 июня 2020

У меня есть сцена Unity с LineRenderer на верхнем уровне (ie не дочерний элемент какого-либо компонента), называемая «LineOfFlight».

Я пытаюсь получить ссылку на нее программно ( не через редактор):

    LineRenderer
            lineOfFlight;
    GameObject
            tmp = GameObject.Find("LineOfFlight");

    if (tmp != null)
        lineOfFlight = tmp.GetComponent<LineRenderer>();

    Debug.Log("lineOfFlight=" + (lineOfFlight == null ? "null" : "not null") + ", tmp=" + (tmp == null ? "null" : tmp.ToString()));

В журнале отладки tmp отображается как «LineOfFlight (UnityEngine.GameObject)», что выглядит нормально, но lineOfFlight отображается как «null». Ie не удалось получить компонент.

Я делаю все это в Awake (). Что я сделал не так?

1 Ответ

0 голосов
/ 18 июня 2020

Где-то в части вашего кода есть ошибка, которую вы не включили в свой вопрос, поскольку сам код работает, если его правильно отформатировать и задать в функциях.

В качестве альтернативы ваш GameObject под названием "LineOfFlight" может содержать опечатку в своем названии или не иметь добавленного компонента LineRenderer.

using UnityEngine;

public class LineRendererText : MonoBehaviour
{

    LineRenderer lineOfFlight = null;

    private void Start()
    {
        GameObject tmp = GameObject.Find("LineOfFlight");

        if (tmp != null)
            lineOfFlight = tmp.GetComponent<LineRenderer>();

        Debug.Log("lineOfFlight=" + (lineOfFlight == null ? "null" : "not null") + ", tmp=" + (tmp == null ? "null" : tmp.ToString()));
    }
}

Result when running

...