Щелчки мыши

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Щелчки мыши

Сообщение extravert 18 фев 2013, 11:44

Есть два вопроса касаемых щелчков мыши

1. Как опознать двойной щелчок мыши в коде? В документации не нашел

2. Когда нажатие мыши отслеживается внутри OnGUI (через Input.GetKeyMouseDown или что то такое) то при самом щелчке действие происходит несколько раз. Собственно соль в том что онГУИ обновляется быстрее. Как сделать так, чтобы код действия был написан в онГУИ, но при том обрабатывался один раз.
Аватара пользователя
extravert
UNIверсал
 
Сообщения: 465
Зарегистрирован: 24 дек 2012, 11:54

Re: Щелчки мыши

Сообщение pod4444 18 фев 2013, 12:24

1) сделайте сами, что-то вроде таймера на 0.5 секунды после 1 клика,а если произошло 2 нажатие в течение этого времени, то выполнить действие.
2) сделать условие, самый простой вариант залочить булом.
Аватара пользователя
pod4444
Старожил
 
Сообщения: 721
Зарегистрирован: 20 янв 2012, 22:02
Откуда: Воронеж
Skype: pod4444
  • Сайт

Re: Щелчки мыши

Сообщение gturk 18 фев 2013, 12:30

В онгуи не нужно это отлавливать потому как он вызывается несколько раз за кадр
Можно сделать следуйщим образом:
Завести 2 булевские переменные: "было нажатие n секунд назад", и "было двойное нажптие"
при первом нажатии установить флаг, по прошествии некоторого интервала времени флаг сбрасывается
при нажатии на кнопку мыши проверяется этот флаг, если установлен - значит двойное нажатие.
Тоесть нажатия ловить и устанавливать флаги в апдейте, а в онгуи только проверять соответствующие флаги
Если делаете серьезное приложение на продажу, то самым правильным будет взять время сброса этого флага из настроек ОС, если это просто поделка, то можно обойтись захордкоженым временем
Аватара пользователя
gturk
UNITрон
 
Сообщения: 239
Зарегистрирован: 01 апр 2012, 18:49

Re: Щелчки мыши

Сообщение extravert 18 фев 2013, 12:33

насчет повторения событий - я делал флаг в онГуи и срабатывание в Update(). Однако, я подразумевал что я это сделал лишь от глупости и на самом деле есть какой то вариант отловить - например где нибудь в Evenet.current.

Насчет двойного щелчка мыши - неужели таки самому писать?
Аватара пользователя
extravert
UNIверсал
 
Сообщения: 465
Зарегистрирован: 24 дек 2012, 11:54

Re: Щелчки мыши

Сообщение pod4444 18 фев 2013, 13:21

Парень, привыкай, здесь тебе придется много чего делать самому, зачастую такие велосипеды, которые кажется однозначно должны быть в движке.
Аватара пользователя
pod4444
Старожил
 
Сообщения: 721
Зарегистрирован: 20 янв 2012, 22:02
Откуда: Воронеж
Skype: pod4444
  • Сайт

Re: Щелчки мыши

Сообщение jetyb 18 фев 2013, 14:16

Event.current.clickCount

Писать надо именно в OnGUI.
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21

Re: Щелчки мыши

Сообщение extravert 18 фев 2013, 15:00

Велосипеды - это точно. Собственно с таким дописыванием едва поддерживаю код в чистоте, да и то сказать сложно [curved_hands]
Углубляясь в программирование на шарпе вдруг замечтал вернуться на плюсы - уж очень ссылочные данные передавать тут не удобно. Метод unsafe одно спасенье, да и тот нельзя использовать в ряде контекстов

Насчет clickCount приду с работы - гляну что за вещь. Пока почитаем-с документацию, звучит то интересно.

//З.Ы. Смайлы громадные
Аватара пользователя
extravert
UNIверсал
 
Сообщения: 465
Зарегистрирован: 24 дек 2012, 11:54

Re: Щелчки мыши

Сообщение Woolf 18 фев 2013, 17:06

Велосипеды - это точно.


В чем велосипеды? В том, что вы не прочитали документацию и пытаетесь реализовать double click своими методами?

уж очень ссылочные данные передавать тут не удобно.


"тут" - это где? И чем же неудобно? Вы указатели хотите передавать? Так забудьте, за указатели руки надо отбивать еще на этапе проектирования. Если вам необходимо использовать unsafe - вам крайне срочно необходимо пересмотреть свой подход к вашей архитектуре игры и к вашим методам программирования.

PS Я всегда был убежден, что активное использование С++ калечит мозг программистов.. Как показывает практика - я прав.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Щелчки мыши

Сообщение 46165957 18 фев 2013, 19:46

46165957
Старожил
 
Сообщения: 835
Зарегистрирован: 13 май 2011, 12:14


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 14