Ошибка Unity GetComponent (GUIText)?

У меня проблема с GetComponent(GUIText), я получаю ошибку

К игровому объекту "#######COUNTER(Clone)" не прикреплен 'GUIText', но скрипт пытается получить к нему доступ.

Вот мой код:

var UItecxt = GameObject.Find("#######COUNTER(Clone)");
var txtconvert = UItecxt.GetComponent(GUIText);
print(txtconvert);
txtconvert.text = counternumb.ToString();

У МЕНЯ ЕСТЬ GUIText на моем клоне! В чем проблема? Спасибо!


person Hudson    schedule 06.01.2015    source источник


Ответы (2)


Ваша проблема в том, что в сцене нет ни одного GameObject с именем "#######COUNTER(Clone)". Запустите мой код ниже, и вы заметите.

var UItecxt = GameObject.Find("#######COUNTER(Clone)");
var txtconvert : GUIText;

if(UItecxt != null)
   txtconvert = UItecxt.GetComponent(GUIText);

else
  Debug.Log("There was no GameObject with the name '#######COUNTER(Clone)' in the scene");

Чтобы это исправить, просто убедитесь, что у вас есть GameObject с таким именем.

person apxcode    schedule 06.01.2015
comment
На самом деле есть игровой объект с таким именем, и он его находит. Но снова я получаю сообщение об ошибке «GUIText» не прикреплен к игровому объекту COUNTER, но скрипт пытается получить к нему доступ. - person Hudson; 07.01.2015
comment
Код: function Update () { var UIttecxt = GameObject.FindWithTag(COUNTER); var txttconvert : GUIText; печать (UIttecxt); if(UIttecxt != null){ txttconvert = UItecxt.GetComponent(GUIText); txttconvert.text = counternumb.ToString(); } else { Debug.Log(В сцене не было GameObject с именем 'COUNTER'); } - person Hudson; 07.01.2015
comment
GetComponent() либо находит Component, либо нет, в этом нет никакой магии. Поэтому вам нужно убедиться, что он действительно подключен к вашему Counter - person apxcode; 07.01.2015
comment
По какой-то причине, когда я не ставлю (Клонировать) перед именем, т.е. СЧЕТЧИК(Клонировать) --> СЧЕТЧИК, это не работает. Почему я не могу GameObject.Find мой созданный объект пользовательского интерфейса? - person Hudson; 07.01.2015
comment
Вы нашли объект к Tag сейчас. Если вы хотите найти по имени, вам нужно точное имя COUNTER(Clone) или COUNTER, каким бы оно ни было. Также, если вы используете тег, убедитесь, что имя тега правильное. - person apxcode; 07.01.2015
comment
Итак, я попробовал другой подход и поместил скрипт на сам текст, и знаете что? Он говорит, что в GUIText нет GUIText! Почему я не могу получить TextComponent??? Я использовал это, чтобы получить текст НА GUIText: var text = gameObject.GetComponent(GUIText); - person Hudson; 07.01.2015
comment
И я попытался поставить тот же скрипт на родителя, и это все равно не сработало. - person Hudson; 07.01.2015
comment
С вашей стороны происходит что-то странное. Я могу использовать его в совершенстве. - person apxcode; 07.01.2015
comment
хммм ... вы создаете свой объект? Можете ли вы сказать мне, что именно вы делаете? - person Hudson; 07.01.2015
comment
Да, я создаю экземпляр из сборного. Затем я ищу имя объекта. Затем я беру компонент GUIText. - person apxcode; 07.01.2015

Ваш вопрос не является достаточно подробным, чтобы определить проблему.

Тем не менее, я предположил, что игровой объект, о котором вы упомянули, должен быть префабом, который вы создали.

Куда вы кладете или прикрепляете sciprt? Убедитесь, что он прикреплен к префабу, который вы создали.

Кроме того, вы можете попробовать использовать прямую ссылку на компонент вместо использования gameobject.Find. Вам проще перетаскивать элемент в инспекторе.

person Kai    schedule 06.01.2015
comment
Да, это экземпляр Gameobject, но я не хочу прикреплять этот скрипт к объекту, все, что я спрашиваю, это то, почему он говорит, что текст GUI не прикреплен. - person Hudson; 06.01.2015
comment
Вот код, с которым у меня возникли проблемы: var txtconvert = UItecxt.GetComponent(GUIText); - person Hudson; 06.01.2015
comment
Вы уверены, что UItext нашел нужный игровой объект? - person Kai; 06.01.2015
comment
или вы можете использовать gameobject.FindWithTag, таким образом, он будет более точным и быстрым, просто выполняя поиск по тегам, а не по всему игровому объекту. - person Kai; 06.01.2015