Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 12.04.2012, 09:55   #871
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Фак по Юнити.

Пытаюсь вставить в созданную в юнити анимацию Animation Event. Пишет, что не может найти скрипты для прикрепления к ивенту. Может кто знает правило написание скрипта с функцией на C#, чтобы интерфейс Animation Event его увидел?
(Offline)
 
Ответить с цитированием
Старый 12.04.2012, 10:38   #872
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Должно увидеть:

public void MyEvent1()
{

}

public 
void MyEvent2(int param)
{

}

public 
IEnumerator MyEvent3(string param)
{


Но учти, что скрипт должен висеть на том же объекте что и Animation с редактируемым клипом.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Amatsu (12.04.2012)
Старый 12.04.2012, 10:53   #873
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Фак по Юнити.

Скорее всего из–за последнего пункта и не видело, спасибо
(Offline)
 
Ответить с цитированием
Старый 12.04.2012, 13:45   #874
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Фак по Юнити.

вот думаю как сделать систему отслеживания нажатия на элементы моего gui.
Делаю так:
В одном скрипте, в LateUpdate пускать от курсора луч и если была коллизия с какой-то кнопкой, то поднять у нее флаг, что над ней мышка или она нажат.
А в следующем кадре в Update опрашивать эти кнопки. Только будет запаздывать на кадр, но думаю это не страшно.
Но вот не пойму когда кнопка должна сбрасывать у себя эти флаги? В Update нельзя т.к. идет их опрос, в LateUpdate нельзя т.к. можно сбросить новые данные. Наверно я что-то делаю абсолютно не так.

Можно было бы сделать, что бы каждая кнопка сама пускала в себя луч, но хочу это выделить в отдельный скрипт, который бы потом мог хранить данные о том, что мышка или тач над элементом gui или свободен и передавать его в игру.
(Offline)
 
Ответить с цитированием
Старый 12.04.2012, 14:07   #875
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

зачем в GUI лучи?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 12.04.2012, 14:16   #876
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Фак по Юнити.

зачем в GUI лучи?
коллизию с кнопками проверять. Конечно в 2д это не имеет смысла, но вопрос не в этом.
(Offline)
 
Ответить с цитированием
Старый 12.04.2012, 14:19   #877
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Если это 3d объекты, то симитировать мышь можно достаточно просто:

1. Сначала мышь ни над чем.
2. Ты кидаешь луч каждый FixedUpdate, если во что-то попал - то OnMouseEnter для этого объекта.
3. Запоминаешь объект.
4. Если в следующем цикле попал в тот же объект - OnMouseOver
5. Если в другой, то тому что запомнен - OnMouseExit, новый запоминаешь и ему OnMouseEnter.
6. Если Input.GetMouseDown и есть запомненный объект - OnMouseDown
7. и т.д.

А почему тебе не подходят эти события?
http://unity3d.com/support/documenta...MouseExit.html
http://unity3d.com/support/documenta...MouseDown.html
http://unity3d.com/support/documenta...MouseDrag.html
http://unity3d.com/support/documenta...ouseEnter.html
http://unity3d.com/support/documenta...MouseOver.html
http://unity3d.com/support/documenta...OnMouseUp.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 12.04.2012, 16:06   #878
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Фак по Юнити.

А почему тебе не подходят эти события?
Я хочу что бы и на сенсорном экране работало. Тем более в этом случае пришлось бы вешать на каждую кнопку обработчик ее нажатия.
У меня такая структура:
_рутовый объект
____меню 1 и его обработчик
_______кнопки
____меню 2 и его обработчик
_______кнопки
т.е. обработчик и не на самой кнопке и не на самом рутовом объекте. Тут если посылать события, то всем потомкам рутового объекта, а это медленно. Вот и хочу, что бы из любого места можно было узнать состояние кнопки.

Запоминать объекты это то же не очень. Тем более в каждом FixedUpdate луч пускать.
Хорошо бы в последнем FixedUpdate пустить луч, в Update обработать все кнопки, а в LateUpdate сбросить флаги. Но как узнать, что FixedUpdate последний?
(Offline)
 
Ответить с цитированием
Старый 12.04.2012, 18:25   #879
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Фак по Юнити.

Блин! FixedUpdate не перед каждым Update вызывается. Из-за этого не всегда срабатывает нажатие на кнопку( Это ппц(
Может можно как-то из главного скрипта отсылать сообщения только объектам, которые будут обрабатывать его, а не всем подряд?
(Offline)
 
Ответить с цитированием
Старый 12.04.2012, 20:54   #880
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

FixedUpdate срабатывает 100 раз в секунду.
Причем здесь каждый FixedUpdate? Все что я написал надо сделать в одном скрипте. И про сообщения писал только тому объекту под которым луч. Хоть пытайся понимать что тебе предлагают.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 19.04.2012, 00:15   #881
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Можно как-то ограничить скорость GUI.RepeatButton?
(Offline)
 
Ответить с цитированием
Старый 19.04.2012, 00:18   #882
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 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 сделал бы выпадающее меню.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 19.04.2012, 14:31   #884
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Фак по Юнити.

Мне надо как-то в Editor'е определить нажал ли я на id тайла или что-то другое. Для этого id придется сделать специальным классом, что бы отличать от других int'ов.
И потом в Editor'е как-то переопределить поле редактирования для этого типа элемента.
Тогда должно получится.
(Offline)
 
Ответить с цитированием
Старый 20.04.2012, 21:46   #885
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Смущение Ответ: Фак по Юнити.

Решил я достать все SerializedProperty из скрипта и вручную все поля рисовать, что бы можно было изменить в инспекторе поле для моего типа.
Только не пойму как проверить поле какого типа храниться в SerializedProperty? Т.е. мне надо это SerializedProperty сравнить с typeof(MyClass).
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 06:35.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com