@Shpex

Что не так с GetComponent?

что не так с моим кодом и как его исправить?
хочу чтобы при вводе текста текст был отправлен на скролл бар но он пишет ошибку...

public class console : MonoBehaviour {
	[SerializeField]
	public GameObject output ;

	private string newtext;
	private string sctext = "";

	void Awake()
	{ 
		output.GetComponent<Text>().text ="loaded..."; // тут работает
	}

	void Update()
	{     
			output.GetComponent<Text>().text = newtext; //  тут пишет ошибку


	}

	public void Text_Changed(string newText)
	{
		output.GetComponent<Text>().text = newtext; // и тут пишет ошибку
	}
}
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ответы на вопрос 3
Zoominger
@Zoominger
System Integrator
Какую ошибку-то хоть? Попробуйте:
private string newtext = "";
Ответ написан
MrMureno
@MrMureno
VR for all
Добавить бы Tag Unity

А ошибка явно указывает что нет ссылки на GameObject output - или стер её какой то скрипт, или не назначили.
или назначили в префабе ссылку на объект на сцене, а потом и не заметили как при создании префаба на сцене ссылка - пуста.

Или назначили в это поле префаб и не инстанцировали его на сцене.

И так же, по сути придирки но все же.
Не обзывать бы классы и переменные в глобальном нэимспеисе console и output.
И классы обычно с заглавной именуют) и не такими общими резервными почти что словами))
назовите CustomConsol или GUIConsole, чтоб потом проблем не встретить с похожими именами в плагинах.

Надеюсь что то из этого поможет
Ответ написан
@p4p
GetComponent нельзя вызывать в Update.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы