m9ru Вот тут уже интереснее. Смотрите, setText имеет по моему две перегрузки - когда передается строка, и когда передается id строки из ресурсов. Но - id это по факту int. Соответственно когда вы пытаетесь туда передать length(), вызывается перегрузка для id. Естественно по указанному id (который на самом деле длина строки) ничего не находится - и валится исключение. Что надо сделать - преобразовать число в строку. Например так: output.setText(S.length().toString());
m9ru Как сказал Rou1997 - а где вызов btnCount() Вам нужно получить вашу кнопку (findViewByID) и у него в setOnClickListener передать слушателя, который вызовет btnCount.
TheRage Hod Теперь понятно. Сейчас юнити нет под рукой чтобы проверить. Но я не думаю что у вас там так много объектов, что нельзя просто удалить с них Item и повесить HandItem. Думаю за то время что мы тут это мусолим вы бы уже это сделали :-)
TheRage Hod Я не понимаю где вы хотите выбрать другой скрипт? Вот в том поле на скрине выше ничего выбрать нельзя - readonly. Если вам нужно использовать именно HandItem на топоре - так и вешайте его, а не Item.
TheRage Hod Какую то фигню вы делаете. Параметр Script - неизменяемый. Если вы хотите в скрипт перетаскивать другие объекты - делайте переменную типа MonoBehaviour хотя бы.
Антон Иванов Просто так исторически сложилось. Может есть какое то объяснение аббривеатуре (я только data asset type смог придумать), но быстро его нагуглить не удалось.
okamilov Применяйте шаблонную функцию. GetComponent(); И вся ваша конструкция станет тогда IGameController controller = GameObject.FindGameObjectWithTag (
"GameController»). GetComponent();
Никакого приведения типов при грамотно написанном интерфейсе не надо.
Ну и подумайте как избавиться от FindGameObjectWithTag - это УЖАСНАЯ функция
okamilov Даже не знаю что объяснить... У вас GameController бывает десяти типов. Но методы у них у всех одинаковые. Делаете интерфейс IGameController, выносите в него определения всех публичных методов, которые вам нужны снаружи, а все ваши GameControllerN наследуете от IGameController. Потом в нужном скрипте делаете GetComponent(). Он вам вернет тот GameControllerN, который у вас висит на этом объекте.