Input getkeydown unity не работает

Unity2D «Input.GetKeyDown больше не работает

Я новичок в программировании и разработке игр в Unity, поэтому наберитесь терпения.

Я пытаюсь добавить силы игроку нажатием кнопки. Основная идея заключается в том, что если игрок смотрит влево или вправо, игрок должен быть запущен в этом направлении.

Я пытался заставить код определять, смотрит ли игрок влево или вправо, в зависимости от того, какую кнопку я нажимал последней («A» или «D»), используя команду «InputGetKeyDown (KeyCode.A / D)».

Я сделал два частных bool (IsFacingRight и IsFacingLeft). IsFacingRight по умолчанию начинается с true, а Left — с false, но если игрок переключает направление, то bools соответственно изменятся. Запуск должен был произойти, когда я нажал левый Shift, но это тоже не регистрируется.

Я попытался использовать «Debug.Log», чтобы увидеть, обнаруживает ли код входные данные, но, как я и ожидал, этого не произошло. Когда я нажимал «A», «D» или «LeftShift», в консоли отладки ничего не появлялось. Итак, теперь у меня есть подтверждение, что единство не обнаруживает входы.

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

3 ответа

Вы должны добавить это к своему моноповедению;

Также вы можете обрабатывать isFacingL следующим образом;

private bool IsFacingL => !IsFacingR;

Из приведенного вами кода причина, по которой IsFacingR и IsFacingL никогда не обновляются, заключается в том, что функции Slide() и Sliding() никогда не вызываются.

Если ваш класс расширяется от MonoBehaviour , вы можете использовать функцию Update() , которая вызывается в каждом кадре.

Вы не вызываете метод Sliding() . Переименуйте этот метод в Update() , убедитесь, что ваш класс наследует MonoBehaviour и этот класс находится в активном GameObject в сцене как Component.

Источник

if (Input.GetKeyDown(KeyCode.Mouse0) не всегда срабатывает

Я записал геймплей на видео, и так то все не особо заметно, но в конце я просто понажимал на мышь, и удар не всегда срабатывает. Если писать (Input.GetKey(KeyCode.Mouse0), то урон насчитывается за один удар, но проигрывается анимация всех трех ударов в комбо (если мышь удерживать). Как это исправить?
Видео специально со звуком чтоб было слышно насилие над мышкой (https://youtu.be/Bu81oYA7gAM)

Добавлено через 43 минуты
Ну хотя бы скажите стоит с этим вообще заморачиваться?

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Условие всегда срабатывает
Здравствуйте! У меня как бы два вопроса в одном сразу) В php идет проверка на логин пароль.

Не всегда срабатывает функция
Добрый день. есть пару сайтов, для которых подключен один JS, на каждом сайте есть кнопка «Вверх».

404 не всегда срабатывает
Здравствуйте. Страницы ошибок у меня расписаны (.htaccess): ErrorDocument 400 /error.php?p=400.

.onclick не всегда срабатывает
есть код, который создаёт тег к нему я привязывают .onclick img.onclick = myFunction;.

Добавлено через 5 минут
1max1, хотя ладно, надо попробовать сделать без ивентов в самой анимации, я точно уже и не помню была до этого такая проблема или нет

Добавлено через 1 час 36 минут
1max1, без ивентов в анимации все тоже самое

Решение

Sagik, не знаком с Юнити, но вы уверены, что вам нужно использовать fixedDeltaTime?

Ведь если допустим у вас значение в редакторе выставлено 0.02
То за 0.2 мс, набежит значение 5.
А это слишком быстро

Может лучше использовать какие-то таймеры? Или задержки?

Потому как судя по видео, и то насколько вы быстро клацаете, урон наносится в размере 20 единиц. А такое возможно если выполнять первое условие 2 раза. Иначе, при втором условии, наносилось бы по 30 урона.

Добавлено через 10 минут
Немного не точен, за 0.2 мс будет значение 10

Источник

Не считывается каждое нажатие клавиш движения

Всем привет!
Есть код движения персонажа. Вроде бы все работает, т.е. персонаж двигается, НО(!) почему-то в тестовом режиме в Unity считывается не каждое нажатие клавиш. То есть я нажимаю W или «вверх», например, 5 раз, а персонаж получает почему-то 2 или 3 импульса. Ниже код. Подскажите пожалуйста, может в нем что-то не так?

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Создание игры «Сквош». Не срабатывает нажатие клавиш во время движения шарика
Доброго времени суток! Создаю игру, где мяч(Shape1) должен отталкиваться от стенки, с другой.

Нажатие клавиш вне формы (глобальный перехват сочетания клавиш)
Всем доброго времени суток! Задумал сделать значок раскладки клавы, но беда в том, что если.

Почему нажатие клавиши считывается только со второго раза?
Подскажите пожалуйста, почему нажатие клавиши считывается только со второго раза для + и Q, и с.

Нажатие клавиш
Проблема следующая: Использую вот такой код для нажатия клавиши в клиенте игры(да-да, пишу.

Решение

Нажатие клавиш в ТП
Как считать правильно нажатие стрелок? Почему программа стрелку вверх воспринимает как символ H .

Нажатие клавиш
Для движения объекта использую процедуру OnKeyPress, отдельно обрабатывая нажатие четырёх клавиш.

Нажатие клавиш
Доброго времени суток! Есть такой вопрос по поводу функции GetKeyState. Вот я ее вызываю.

нажатие клавиш
Что можно использовать вместо getch() чтобы программа не ждала нажатия клавиши а проверяла была ли.

Нажатие клавиш
Помогите пожалуйста разобраться с проблемой. Есть диалоговое окно которое состоит с простого комбо.

Нажатие клавиш
Как сделать что бы при нажатии кнопки «нажимались клавиши», ну то есть печаталось сообщение за.

Источник

Is it really wrong to use Input.GetKey() on FixedUpdate?

We know there’s a «rule» that Input functions shouldn’t be used inside the FixedUpdate() ; Input.GetKeyDown() may not work if we do so, but is it really wrong to use Input.GetKey() ?

Let’s say we want to fire something when pressing and holding a key at some rate that is not dependent on hardware performance. I don’t want to create a logic to control this using delta time or writing key detection code in Update and firing code in FixedUpdate .

Doesn’t make sense to just do everything inside FixedUpdate ? What can happen — we may lose some key pressed events, the ones that we didn’t want anyway, to keep our desired rate.

But what if one single key event happens, can we lose it? Is there a reset after Update , so we won’t see it on FixedUpdate ?

2 Answers 2

From the GetKeyDown docs:

You need to call this function from the Update function, since the state gets reset each frame

So yes, the Input state is reset each frame meaning hardware will have an effect depending on how frequently Update fires between FixedUpdate .

There really isn’t an easy way to avoid creating a copy of the Input that is used by FixedUpdate, though I would suggest reevaluating your logic to move things in to Update .

Update:

Regarding Rutter’s comment below. I just noticed the OP was asking about GetKey() , what I wrote about GetKeyDown() remains true for GetKey() though the documentation doesn’t explicitly say so.

This can be verified by going in to the Time Manager and changing the FixedUpdate rate to some long interval like 1 second. Then do something like:

If you press and release ‘D’ between the 1 second fixed frames you will only see «No Key Down».

Источник

Why does Input.GetKey(«enter») never return true?

I want to modify an int variable on one script by having another script subtract 1 from it. But when I try to trigger this on an «enter» key press, nothing happens.

3 Answers 3

«enter» is not a key name that Unity recognizes.

I recommend using the KeyCode enumeration instead of raw strings, so your IDE’s autocompletion and the compiler will tell you when you’re trying to use an unknown key identifier. In this case you’d use.

Keys

The names of keys follow this convention:

Normal keys: “a”, “b”, “c” …

Number keys: “1”, “2”, “3”, …

Arrow keys: “up”, “down”, “left”, “right”

Modifier keys: “right shift”, “left shift”, “right ctrl”, “left ctrl”, “right alt”, “left alt”, “right cmd”, “left cmd”

Mouse Buttons: “mouse 0”, “mouse 1”, “mouse 2”, …

Joystick Buttons (from any joystick): “joystick button 0”, “joystick button 1”, “joystick button 2”, …

Joystick Buttons (from a specific joystick): “joystick 1 button 0”, “joystick 1 button 1”, “joystick 2 button 0”, …

Special keys: “backspace”, “tab”, “return”, “escape”, “space”, “delete”, “enter”, “insert”, “home”, “end”, “page up”, “page down”

Источник

Читайте также:  Как настроить смарт тв для просмотра iptv
Оцените статью