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

Оптимизация кода.

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

Сообщение Neodrop 04 окт 2009, 18:58

Универсальный Менеджер обработки событий в Unity.

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

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

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

(Вложение удалено как безнадёжно устаревшее)
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

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

Сообщение Neodrop 08 окт 2009, 05:26

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

Код: Выделить всё
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);
        }
    }
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

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

Сообщение Neodrop 08 окт 2009, 16:23

Дальнейшее развитие перешло в форму Dll.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

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

Сообщение Neodrop 01 ноя 2009, 01:03

Менеджер Событий, версия 3.

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

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

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

Менеджер предоставляется бесплатно, для НЕКОММЕРЧЕСКИХ проектов. При желании использовать в коммерческом проекте, просьба связаться со мной.
У вас нет доступа для просмотра вложений в этом сообщении.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

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

Сообщение Neodrop 01 ноя 2009, 01:28

Вот эта демка будет работать. перепутал. Та, что вверху, не будет. Замените dll на ту, что в архиве из предыдущего поста.
У вас нет доступа для просмотра вложений в этом сообщении.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

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

Сообщение Neodrop 03 ноя 2009, 05:47

Менеджер переписан на автогенерящиеся Делегаты. Может совершать более 1000 вызовов за одну миллисекунду. :ymparty:
Ведётся работа над Editor компонентом, отображающим список всех зарегистрированный Событий и Слушателей.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

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

Сообщение Neodrop 04 ноя 2009, 09:17

Версия 3.0

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

Но пока не выложу. Доведу до ума интеграцию с Редактором - визуальное отображение зарегистрированных Событий.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

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

Сообщение Neodrop 17 ноя 2009, 12:18

Версия 3.1

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

На днях выложу новую версию в доступ.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

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

Сообщение Neodrop 06 янв 2010, 07:59

Версия 3.5

Ищите тут : viewtopic.php?f=12&t=1162&p=8998#p8998
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в Код

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2