Действие по нажатию по кнопке

Рейтинг: 0Ответов: 1Опубликовано: 14.05.2023
void Rush()
    {
        transform.localPosition += transform.forward * speed * time.deltaTime;
    }

Я не понимаю, как сделать, чтобы при нажатии один раз на кнопку GetKeyDown()

Действия производились несколько раз.

Цикл while я не могу сделать, потому что это находится в методе Update().

void Update()
    {
        if (Input.GetKeyDown(KeyCode.Mouse1))
        {
            timeleft -= Time.deltaTime;
            Rush();
        }

        if(timeleft <= 0 & haveCollision == false )
        {
            Stan();
        }
    }

Нужно, чтобы после нажатия на кнопку Mouse 0, действие Rush() выполнялось 2 секунды, или пока нет столкновения с объектом.

Ответы

▲ 0Принят

Например использовать GetKey

if (!haveCollision && timeleft >= Time.deltaTime && Input.GetKey(KeyCode.Mouse1))
{
    timeleft -= Time.deltaTime;
    Rush();
}

Можно ещё через корутины сделать.

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