|
Unity Мультиплатформенный инструмент для разработки игр |
12.04.2012, 09:55
|
#871
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Фак по Юнити.
Пытаюсь вставить в созданную в юнити анимацию Animation Event. Пишет, что не может найти скрипты для прикрепления к ивенту. Может кто знает правило написание скрипта с функцией на C#, чтобы интерфейс Animation Event его увидел?
|
(Offline)
|
|
12.04.2012, 10:38
|
#872
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Должно увидеть:
public void MyEvent1() {
}
public void MyEvent2(int param) {
}
public IEnumerator MyEvent3(string param) {
}
Но учти, что скрипт должен висеть на том же объекте что и Animation с редактируемым клипом.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.04.2012, 10:53
|
#873
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Фак по Юнити.
Скорее всего из–за последнего пункта и не видело, спасибо
|
(Offline)
|
|
12.04.2012, 13:45
|
#874
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Фак по Юнити.
вот думаю как сделать систему отслеживания нажатия на элементы моего gui.
Делаю так:
В одном скрипте, в LateUpdate пускать от курсора луч и если была коллизия с какой-то кнопкой, то поднять у нее флаг, что над ней мышка или она нажат.
А в следующем кадре в Update опрашивать эти кнопки. Только будет запаздывать на кадр, но думаю это не страшно.
Но вот не пойму когда кнопка должна сбрасывать у себя эти флаги? В Update нельзя т.к. идет их опрос, в LateUpdate нельзя т.к. можно сбросить новые данные. Наверно я что-то делаю абсолютно не так.
Можно было бы сделать, что бы каждая кнопка сама пускала в себя луч, но хочу это выделить в отдельный скрипт, который бы потом мог хранить данные о том, что мышка или тач над элементом gui или свободен и передавать его в игру.
|
(Offline)
|
|
12.04.2012, 14:07
|
#875
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
зачем в GUI лучи?
|
(Offline)
|
|
12.04.2012, 14:16
|
#876
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Фак по Юнити.
коллизию с кнопками проверять. Конечно в 2д это не имеет смысла, но вопрос не в этом.
|
(Offline)
|
|
12.04.2012, 16:06
|
#878
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Фак по Юнити.
А почему тебе не подходят эти события?
|
Я хочу что бы и на сенсорном экране работало. Тем более в этом случае пришлось бы вешать на каждую кнопку обработчик ее нажатия.
У меня такая структура:
_рутовый объект
____меню 1 и его обработчик
_______кнопки
____меню 2 и его обработчик
_______кнопки
т.е. обработчик и не на самой кнопке и не на самом рутовом объекте. Тут если посылать события, то всем потомкам рутового объекта, а это медленно. Вот и хочу, что бы из любого места можно было узнать состояние кнопки.
Запоминать объекты это то же не очень. Тем более в каждом FixedUpdate луч пускать.
Хорошо бы в последнем FixedUpdate пустить луч, в Update обработать все кнопки, а в LateUpdate сбросить флаги. Но как узнать, что FixedUpdate последний?
|
(Offline)
|
|
12.04.2012, 18:25
|
#879
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Фак по Юнити.
Блин! FixedUpdate не перед каждым Update вызывается. Из-за этого не всегда срабатывает нажатие на кнопку( Это ппц(
Может можно как-то из главного скрипта отсылать сообщения только объектам, которые будут обрабатывать его, а не всем подряд?
|
(Offline)
|
|
12.04.2012, 20:54
|
#880
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
FixedUpdate срабатывает 100 раз в секунду.
Причем здесь каждый FixedUpdate? Все что я написал надо сделать в одном скрипте. И про сообщения писал только тому объекту под которым луч. Хоть пытайся понимать что тебе предлагают.
|
(Offline)
|
|
19.04.2012, 00:15
|
#881
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: Фак по Юнити.
Можно как-то ограничить скорость GUI.RepeatButton?
|
(Offline)
|
|
19.04.2012, 00:18
|
#882
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Фак по Юнити.
Есть у меня TileSet со списком объектов класса Tile.
Tile это обычный класс, ни от чего не унаследованный. У каждого тайла есть свой id.
И есть скрипт Map, у которой есть ссылка на TileSet и поля в которые нужно записывать id тайлов. Сейчас мне эти id приходится вручную писать. Можно ли сделать, что бы id можно было выбрать TileSet'а, а не писать их вручную?
id - это сейчас просто int.
Делать в Editor'е редактирование каждого поля - не выход т.к. поля могут удаляться\добавляться или просто их быть много.
Или лучше тайл наследовать от ScriptableObject и как обычно записывать каждый объект в ссылку?
|
(Offline)
|
|
19.04.2012, 07:03
|
#883
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Сообщение от Andvrok
Можно как-то ограничить скорость GUI.RepeatButton?
|
Как понять ограничить? Если просто изменить количество срабатываний, то сделай переменную времени следующего срабатывания и запускай код только по достижении этого времени, а потом увеличивай время на нужный интервал.
Сообщение от WISHMASTER35
Есть у меня TileSet со списком объектов класса Tile.
Tile это обычный класс, ни от чего не унаследованный. У каждого тайла есть свой id.
И есть скрипт Map, у которой есть ссылка на TileSet и поля в которые нужно записывать id тайлов. Сейчас мне эти id приходится вручную писать. Можно ли сделать, что бы id можно было выбрать TileSet'а, а не писать их вручную?
id - это сейчас просто int.
Делать в Editor'е редактирование каждого поля - не выход т.к. поля могут удаляться\добавляться или просто их быть много.
Или лучше тайл наследовать от ScriptableObject и как обычно записывать каждый объект в ссылку?
|
Мало что понял, но я бы для назначения id сделал бы выпадающее меню.
|
(Offline)
|
|
19.04.2012, 14:31
|
#884
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Фак по Юнити.
Мне надо как-то в Editor'е определить нажал ли я на id тайла или что-то другое. Для этого id придется сделать специальным классом, что бы отличать от других int'ов.
И потом в Editor'е как-то переопределить поле редактирования для этого типа элемента.
Тогда должно получится.
|
(Offline)
|
|
20.04.2012, 21:46
|
#885
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Фак по Юнити.
Решил я достать все SerializedProperty из скрипта и вручную все поля рисовать, что бы можно было изменить в инспекторе поле для моего типа.
Только не пойму как проверить поле какого типа храниться в SerializedProperty? Т.е. мне надо это SerializedProperty сравнить с typeof(MyClass).
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:35.
|