Страница 1 из 1

Менеджер событий. Версия 2

СообщениеДобавлено: 04 окт 2009, 18:58
Neodrop
Универсальный Менеджер обработки событий в Unity.

Описание прикреплённого примера :
В сцене три объекта.
GameObject0
GameObject1
GameObject2

На них висят скрипты, регистрирующиеся в Менеджере и ожидающие от него событий.
Ждут они в функцию public void InputGetMouseButtonDown()

Все три объекта регистрируются, а третий ещё и выходит из очереди (для теста и демонстрации функционала). То есть, ожидающих остаётся только два.
При нажатии на колёсико мыши, срабатывает скрипт, висящий на камере и проверяющий нажатие. Он посылает сообщение о событии Менеджеру. Менеджер оповещает очередь.
Скрипты,вызванные Менеджером, пишут сообщение в дебаггер.
Всё.

(Вложение удалено как безнадёжно устаревшее)

Re: Менеджер событий.

СообщениеДобавлено: 08 окт 2009, 05:26
Neodrop
Новая функция, позволяюшая вызывать методы только указанного класса (предотвращает дублирование событий).

Код: Выделить всё
public static void Event(string eventName, System.Type type)
    {
        if (queueHolder.ContainsKey(eventName))
        {
            List<MonoBehaviour> keyHash = queueHolder[eventName] as List<MonoBehaviour>;
            int count = keyHash.Count;
            for (int i = 0; i < count; i++) if (keyHash[i].GetType() == type) keyHash[i].Invoke(eventName, 0);
        }
    }

Re: Менеджер событий.

СообщениеДобавлено: 08 окт 2009, 16:23
Neodrop
Дальнейшее развитие перешло в форму Dll.

Re: Менеджер событий. Версия 2

СообщениеДобавлено: 01 ноя 2009, 01:03
Neodrop
Менеджер Событий, версия 3.

Читаем сопроводительный .pdf файл.

Теперь менеджер может ВСЁ. :ymparty:

З.Ы. старая демка из первого поста, будет работать. Просто замените dll.

Менеджер предоставляется бесплатно, для НЕКОММЕРЧЕСКИХ проектов. При желании использовать в коммерческом проекте, просьба связаться со мной.

Re: Менеджер событий. Версия 2

СообщениеДобавлено: 01 ноя 2009, 01:28
Neodrop
Вот эта демка будет работать. перепутал. Та, что вверху, не будет. Замените dll на ту, что в архиве из предыдущего поста.

Re: Менеджер событий. Версия 2

СообщениеДобавлено: 03 ноя 2009, 05:47
Neodrop
Менеджер переписан на автогенерящиеся Делегаты. Может совершать более 1000 вызовов за одну миллисекунду. :ymparty:
Ведётся работа над Editor компонентом, отображающим список всех зарегистрированный Событий и Слушателей.

Re: Менеджер событий. Версия 2

СообщениеДобавлено: 04 ноя 2009, 09:17
Neodrop
Версия 3.0

[V] Добавлена функция смены приоритета для Слушателя.
[V] Добавлена возможность регистрировать собственные Делегаты с произвольным количеством параметров.

Но пока не выложу. Доведу до ума интеграцию с Редактором - визуальное отображение зарегистрированных Событий.

Re: Менеджер событий. Версия 2

СообщениеДобавлено: 17 ноя 2009, 12:18
Neodrop
Версия 3.1

[V] Добавлен класс бинарного сохранения/загрузки
[V] Регистрировать функции стало ещё проще. Пример : Antares.Manager.RegisterComponent(this, 0, HideAllWindow, ShowAllHidenWindow);
[V] Исправлены кое-какие баги.

На днях выложу новую версию в доступ.

Re: Менеджер событий. Версия 2

СообщениеДобавлено: 06 янв 2010, 07:59
Neodrop
Версия 3.5

Ищите тут : viewtopic.php?f=12&t=1162&p=8998#p8998