Пятница, 19 Апреля 2024, 02:15

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Положение курсора
Положение курсора
Marlon_WayensДата: Воскресенье, 02 Августа 2015, 16:08 | Сообщение # 1
частый гость
Сейчас нет на сайте
Здравствуйте. Такая вот проблема возникла: Есть массив с Rect координатами, и нужно проверить в какой из них попадает курсор мыши. Понимаю, что надо через rect.contains, но если перебирать циклом, то получается долго. Дак вот может кто знает =)
ЛевшаДата: Воскресенье, 02 Августа 2015, 16:38 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
А в чем проблема с циклом ?
Вынеси цикл в корутину и пусть себе перебирает на здоровье. smile


X.cor.R (Prologue)
Marlon_WayensДата: Воскресенье, 02 Августа 2015, 16:47 | Сообщение # 3
частый гость
Сейчас нет на сайте
Левша, просто получалось, что он долго перебирал элементы пока не доходил до нужного.
ЛевшаДата: Воскресенье, 02 Августа 2015, 19:53 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Цитата Marlon_Wayens ()
он долго перебирал элементы

Ужас... это сколько ж там элементов у тебя ?
Может алгоритм поиска неверный ?


X.cor.R (Prologue)
Marlon_WayensДата: Понедельник, 03 Августа 2015, 18:14 | Сообщение # 5
частый гость
Сейчас нет на сайте
Левша, ну у меня 60 элементов. Это не то что долго, просто получается задержка, где то 1,5 - 2 сек, где то её вообще нет.
KamiRoninДата: Понедельник, 03 Августа 2015, 19:50 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
smile это всегда сложная задача.. ее нужно решать через хитрые способы.
например, попробуй способ на эвентах:
1. в классе менеджере (где главный запрос на попадание проводится) - сделай эвент с делегатом, в котором параметр - Vector2. И добавь менеджеру поле со списком классов Rector (будет понятно дальше).
2. сделай отдельный мини класс (ну скажем - "Rector" smile ), в котором есть только поле Rect и функция X - обработки попадания в него.
3. функция Х должна заносить ссылку на свой класс -- в поле со списком менеджера, только когда присланные координаты попали в его рект.
4. при создании нового Rector'a - просто подписывай его на главный эвент с делегатом (это нужно всего один раз), и отписывай при уничтожении.
5. запуск эвента выглядит, как вызов одной единственной функции! и после этого можно проверять список сработавших ректов в поле.
выгода в том, что обработка происходит "одновременно" (на самом деле нет, но выглядит так), и список попаданий содержит сразу всех задетых ректов.
там есть пара тонкостей, которые я специально не описываю.. smile ну что б ты думал, чтобы пытался!!... smile


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.


Сообщение отредактировал KamiRonin - Понедельник, 03 Августа 2015, 19:50
ЛевшаДата: Понедельник, 03 Августа 2015, 19:58 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
Цитата Marlon_Wayens ()
у меня 60 элементов. Это не то что долго, просто получается задержка, где то 1,5 - 2 сек

Вы что прикалываетесь ?
На перебор 60 элементов у вас 2 сек уходит ?
Это даже для первого пня было бы долго... surprised

Цитата KamiRonin ()
это всегда сложная задача..

Где тут сложная задача ?

Marlon_Wayens, выложите свой код, вы что совсем не то делаете...


X.cor.R (Prologue)

Сообщение отредактировал Левша - Понедельник, 03 Августа 2015, 19:59
KamiRoninДата: Понедельник, 03 Августа 2015, 20:05 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
Цитата Левша ()
Где тут сложная задача ?

smile в том, чтобы найти творческий и одновременно эффективный подход в рутинной задаче! )
не все же в жизни переборами фигачить!? smile


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Marlon_WayensДата: Понедельник, 03 Августа 2015, 21:14 | Сообщение # 9
частый гость
Сейчас нет на сайте
Ну вообщем всем большое спасибо. Решил проблему, обошел другим способом =) Спасибо что потратили на меня время.
ЛевшаДата: Вторник, 04 Августа 2015, 13:08 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
Цитата KamiRonin ()
найти творческий и одновременно эффективный подход в рутинной задаче!

В этом, я с вами полностью согласен. smile


X.cor.R (Prologue)
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Положение курсора
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг