Задержка обработки нажатия клавиш

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

Задержка обработки нажатия клавиш

Сообщение Axid 16 июл 2012, 12:53

Сам я новичок в Юни, потому сейчас задам тупой вопрос.
Обработку нажатия клавиш проверяю в методе Update, само собой это рождает задержку между нажатием клавиши и реакцией программы. Как сделать, чтобы минимизировать время реакции программы? Вызывать проверку нажатия и обработку в каком-то другом методе? Или есть еще какие-то варианты?
Axid
UNец
 
Сообщения: 40
Зарегистрирован: 15 июл 2012, 17:00

Re: Задержка обработки нажатия клавиш

Сообщение Nicloay 16 июл 2012, 12:58

А можно вам встречный вопрос ?
Как вы оптимизировали задержку на клавиатуре между прикосновением пальца и срабатывнием механического триггера на клаве или мышке :)?
If you wish to make an apple pie from scratch, you must first invent the universe.(Carl Sagan, Cosmos)
| My Asset Store | coloring book | github | _wiki.unity3d.com | twitter | linkedin |
Аватара пользователя
Nicloay
Адепт
 
Сообщения: 1288
Зарегистрирован: 31 май 2012, 09:27
Откуда: Альпс
  • Сайт

Re: Задержка обработки нажатия клавиш

Сообщение Axid 16 июл 2012, 13:08

Суть вот в чем. Мне надо, чтобы по нажатию клавиши сразу играл определенный звук. А получается, что звук слегка опаздывает. Вот интересно теперь, можно ли снизит эту задержку. Может быть это задержка самого механизма проигрывания аудио?
Axid
UNец
 
Сообщения: 40
Зарегистрирован: 15 июл 2012, 17:00

Re: Задержка обработки нажатия клавиш

Сообщение DobrijZmej 16 июл 2012, 13:39

обработка нажатия и запуск звука на проигрывание в разных местах стоят ?
если нет - тогда нет причин для задержек.... разве что действительно, звук подгружается из внешней среды и нужно время на его обработку перед запуском проигрывания...
Аватара пользователя
DobrijZmej
UNIт
 
Сообщения: 146
Зарегистрирован: 03 июл 2012, 20:38

Re: Задержка обработки нажатия клавиш

Сообщение Axid 16 июл 2012, 13:55

DobrijZmej писал(а):обработка нажатия и запуск звука на проигрывание в разных местах стоят ?
если нет - тогда нет причин для задержек.... разве что действительно, звук подгружается из внешней среды и нужно время на его обработку перед запуском проигрывания...


Ну да, у меня там элементарный блок if - если нажата такая-то клавиша - играем такой-то звук, и все.
Axid
UNец
 
Сообщения: 40
Зарегистрирован: 15 июл 2012, 17:00

Re: Задержка обработки нажатия клавиш

Сообщение Receptor 16 июл 2012, 14:12

Необходимо глянуть как Вы осуществили инструкцию, какие строчки у вас, по возможности выкладывайте. И не менее важно узнать формат используемого звука, если MP3, то не мудренно, это я Вам как музыкант говорю ;) Если же WAV или OGG, то стоит глянуть на амлитуду самого звука, возможно в начале небольшая тишина/пауза.
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Задержка обработки нажатия клавиш

Сообщение Axid 16 июл 2012, 14:15

Receptor писал(а):Необходимо глянуть как Вы осуществили инструкцию, какие строчки у вас, по возможности выкладывайте. И не менее важно узнать формат используемого звука, если MP3, то не мудренно, это я Вам как музыкант говорю ;) Если же WAV или OGG, то стоит глянуть на амлитуду самого звука, возможно в начале небольшая тишина/пауза.


А можно поподробнее про разницу между MP3 и WAV через призму времени загрузи и проигрывания?)
Axid
UNец
 
Сообщения: 40
Зарегистрирован: 15 июл 2012, 17:00

Re: Задержка обработки нажатия клавиш

Сообщение DobrijZmej 16 июл 2012, 14:16

Axid писал(а):Ну да, у меня там элементарный блок if - если нажата такая-то клавиша - играем такой-то звук, и все.

давайте код и звук сюда на препарацию =)

Axid писал(а):А можно поподробнее про разницу между MP3 и WAV через призму времени загрузи и проигрывания?)

огм... ну, начать хотя-бы с того, что MP3 это сжатый формат, а WAV - оригинал.... правда, это мои суждения как не музыканта =)
Аватара пользователя
DobrijZmej
UNIт
 
Сообщения: 146
Зарегистрирован: 03 июл 2012, 20:38

Re: Задержка обработки нажатия клавиш

Сообщение Axid 16 июл 2012, 14:20

DobrijZmej писал(а):
Axid писал(а):Ну да, у меня там элементарный блок if - если нажата такая-то клавиша - играем такой-то звук, и все.

давайте код и звук сюда на препарацию =)

Axid писал(а):А можно поподробнее про разницу между MP3 и WAV через призму времени загрузи и проигрывания?)

огм... ну, начать хотя-бы с того, что MP3 это сжатый формат, а WAV - оригинал.... правда, это мои суждения как не музыканта =)


не, то что сжатый и несжатый это я и сам прекрасно понимаю ) меня интересует разница во времени загрузки, про которую говорили )

код вот он:

Синтаксис:
Используется csharp
void Update ()
{
               
                if (Input.GetKeyDown(KeyCode.Q))
                        this.audio.PlayOneShot(gameObject.audio.clip); 
}
 
Axid
UNец
 
Сообщения: 40
Зарегистрирован: 15 июл 2012, 17:00

Re: Задержка обработки нажатия клавиш

Сообщение Receptor 16 июл 2012, 14:24

Axid насчет призм времени каких-либо ничего не могу сказать, но могу заверить, что mp3 формат по дефолту имеет паузу в начале и конце файла, для примера, один и тот же файл в мп3 и в wav (красной линнией выделил где начинает играть файл).

WAV
Изображение

MP3
Изображение

задержка в меньше чем полсекунды, но увы, она очень заметна на слух даже обычному смертому :))
и дело не в том , как программа воспринимает компрессиию, в любом случае Юнити подгоняет формат под себя, т.е. в итоге звук становится формата Юнити грубо говоря, но время в амлитуде остается-то относительно оригинального файла. вот так

Можно использоваться OGG, формат хоро тем, что по размерам даже меньше где-то mp3, и не имеет всяких пауз вначале и конце, но OGG формат имеет свои другие недостатки, но они незначительные.
Последний раз редактировалось Receptor 16 июл 2012, 14:31, всего редактировалось 1 раз.
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Задержка обработки нажатия клавиш

Сообщение DobrijZmej 16 июл 2012, 14:30

код вот он:

Синтаксис:
Используется csharp
void Update ()
{
               
                if (Input.GetKeyDown(KeyCode.Q))
                        this.audio.PlayOneShot(gameObject.audio.clip); 
}
 

да уж... в таком коде сложно что-нибудь напутать... значит проблема должна скрываться в самом звуке... попробуйте действительно привести в формат wav, если он ни в нём, и в редакторе обрезать тишину в начале, если она там есть....
Кстати, для проверки - допишите запись в лог какого-нибудь звука.... вероятно проблема не в задержке обработки клавиш, а в задержке проигрывания звука....
Синтаксис:
Используется csharp
void Update ()
{
               
                if (Input.GetKeyDown(KeyCode.Q)) {
                        Debug.Log("Sound starting play !");
                        this.audio.PlayOneShot(gameObject.audio.clip); 
                }
}
 
Аватара пользователя
DobrijZmej
UNIт
 
Сообщения: 146
Зарегистрирован: 03 июл 2012, 20:38

Re: Задержка обработки нажатия клавиш

Сообщение DobrijZmej 16 июл 2012, 14:32

Receptor писал(а):WAV
[ img ]

MP3
[ img ]

задержка в меньше чем полсекунды, но увы, она очень заметна на слух даже обычному смертому :))

ухтышка... даже не подозревал... пасиба
Аватара пользователя
DobrijZmej
UNIт
 
Сообщения: 146
Зарегистрирован: 03 июл 2012, 20:38

Re: Задержка обработки нажатия клавиш

Сообщение Axid 16 июл 2012, 14:42

Лог попробую. Сэмплы у меня в формате WAV, one-shot барабанов из "профессонального" пака Vengeance (специально взял в кавычки, потому что действительно профессионалы будут негодовать от одного упоминания Vengeance и Шляйса :D ), единственное что - они стерео, может есть смысл их в моно перевести..
Axid
UNец
 
Сообщения: 40
Зарегистрирован: 15 июл 2012, 17:00

Re: Задержка обработки нажатия клавиш

Сообщение Receptor 16 июл 2012, 14:47

Не знаю, не знаю, многие профессианалы юзают эти библиотеки и не икают даже :) Все это стереотипы, и не больше. ;) Тогда странно почему у Вас задержка, Вы бы звук все же свой проверили бы по амлитуде, так, на всякий... А я пока еще подумаю, в чем может быть дело :)) У меня проблемы такой подобной ни разу не было, к примеру :D

П.С. А зачем Вам Венгженс, у Вас игра музыкальная что ле? :) Там-то звуков игровых и нету.
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Задержка обработки нажатия клавиш

Сообщение Axid 16 июл 2012, 14:54

Receptor писал(а):Не знаю, не знаю, многие профессианалы юзают эти библиотеки и не икают даже :) Все это стереотипы, и не больше. ;) Тогда странно почему у Вас задержка, Вы бы звук все же свой проверили бы по амлитуде, так, на всякий... А я пока еще подумаю, в чем может быть дело :)) У меня проблемы такой подобной ни разу не было, к примеру :D

П.С. А зачем Вам Венгженс, у Вас игра музыкальная что ле? :) Там-то звуков игровых и нету.


проблема Венженса в том, что все сэмплы срезаны из треков, то есть на них уже есть компрессия, другая обработка, и иногда даже другие барабаны )
Не совсем, хочу сделать простенькую драм-машинку с падами, чтобы на телефоне можно было постучать ритмы :D
Axid
UNец
 
Сообщения: 40
Зарегистрирован: 15 июл 2012, 17:00


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

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

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