Отслеживание нажатия клавиш

Общие вопросы о Unity3D

Отслеживание нажатия клавиш

Сообщение anti0 21 фев 2019, 15:52

Добрый день!
Прошу Вас поделится информацией.
Каким образом можно отслеживать нажатия клавиш, но без использования Update.
Например нажатия клавиши Escape.
void Update () {
if(Input.GetKeyUp(KeyCode.Escape)

}
}

Дело в том что Update потребляет слишком много ресурсов, насколько мне известно идёт опрос 30 раз в секунду.
Наверняка существует способ на порядок экономичнее.
Знаю что как то связано с событиями, но к сожалению нужную информацию в сети не нашёл.

Заранее благодарю Вас.
Пожалуйста, проголосуйте за мою игру в steam :)
anti0
UNIт
 
Сообщения: 60
Зарегистрирован: 25 мар 2012, 17:20

Re: Отслеживание нажатия клавиш

Сообщение DimaJoke 21 фев 2019, 16:05

Update вызывается не 30 раз в секунду, а каждый кадр(при 30fps да, 30 раз за секунду).
Можете попробовать LateUpdate, который вызывается только после выполнения всех Update событий на сцене.
Что бы повзрослеть, человек должен преодолеть ошибки юности.

Поэтому я снова здесь..
Аватара пользователя
DimaJoke
UNITрон
 
Сообщения: 293
Зарегистрирован: 12 авг 2018, 18:59
Откуда: Ульяновск
  • Сайт

Re: Отслеживание нажатия клавиш

Сообщение Xtir 21 фев 2019, 16:06

Думаешь в тех же самых событиях нет своего апдейта которые отслеживают нажатие клавиши и которые тоже "потребляют слишком много ресурсов"?)))
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: Отслеживание нажатия клавиш

Сообщение 1max1 21 фев 2019, 16:07

Никак. Нажатие клавиш можно отловить только опрашиванием в каждом фрейме. Можно конечно запихнуть это в корутину, вместо апдейта, но это будет тоже самое)) Есть еще FixedUpdate, там кончено ограничение по фреймам, но клавиши не всегда будут отлавливается и иногда пролетать мимо. Вообще это не такая уж и ресурсоемкая операция, не заморачивайся :-B
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Отслеживание нажатия клавиш

Сообщение anti0 21 фев 2019, 18:59

Спасибо всем и в частности 1max1.
Ответ ясен.Просто когда Апдейтов много - то получается весьма существенно.
Пожалуйста, проголосуйте за мою игру в steam :)
anti0
UNIт
 
Сообщения: 60
Зарегистрирован: 25 мар 2012, 17:20

Re: Отслеживание нажатия клавиш

Сообщение Jarico 21 фев 2019, 19:52

anti0 писал(а):Дело в том что Update потребляет слишком много ресурсов
Заранее благодарю Вас.



Используй Entity Component System - многопоточность, компилятор с оптимизацией (тестировал лично: 100 тыс. объектов были с Update) и фризов не так много
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: Отслеживание нажатия клавиш

Сообщение 1max1 21 фев 2019, 20:21

ecs - сила)
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Отслеживание нажатия клавиш

Сообщение seaman 21 фев 2019, 22:11

когда Апдейтов много

Кто мешает сделать один на сцену? Найдите статью 10000 Updates там есть пример
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Общие вопросы

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

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