BadCats
@BadCats

Unity, c# и бывшая нажатая клавиша?

Всем привет, как в Unity на c# реализовать, что бы при нажатии на клавишу А например, если до этого была нажата клавиша В, значения например скорости персонажа сбрасывались? Ключевое слово до этого? Т.е эти клавиши как антагонисты.
if (Input.GetKey(KeyCode.D))// нажата сейчас
        {
            if (Input.GetKey()// не знаю как написать была нажата до этого
                {
                {
                speed=0;
                }
  • Вопрос задан
  • 583 просмотра
Решения вопроса 2
GavriKos
@GavriKos Куратор тега Unity
Запомнить в переменную была ли нажата клавиша В и когда. При нажатии А - проверить давно ли была нажата В. ПРи нажатии С - сбросить переменную, ответственную за состояние В.

Судя по тонне вопросов - рано вам игры писать, начните с чего попроще, или идите джуном в команду - научат.
Ответ написан
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Берёте переменную float, записываете в неё время при каждом нажатии клавиши, когда нужно проверить давность нажатия, сравниваете с интервалом.
private float lastPressedDTime = float.MinValue;
private const float threshold = 0.5f;

private void Update()
{
    if (Input.GetKeyDown(KeyCode.D))
    {
        lastPressedDTime = Time.time;
    }

    if (Time.time - lastPressedDTime < threshold)
    {
        Debug.Log("D");
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы