Как повторить функцию, пока кнопка нажата (Новая система ввода единиц) - PullRequest
0 голосов
/ 21 января 2020

Попытка непрерывно повторять функцию OnAttack(), пока нажата кнопка.

В основном я ищу эквивалент Update() { GetKeyDown() {//code }} Но с системой ввода.

Редактировать: используя джойстик, не могу сказать, какая кнопка нажимается.

Ответы [ 3 ]

2 голосов
/ 21 января 2020

Хорошо, я решил это, используя «нажатие» во взаимодействиях и дав этому триггеру поведение «Нажми и отпусти», затем сделал

bool held = false;
Update()
{
    if(held)
    {
        //animation
    }
    else if(!held)
    {
        //idle animation
     }
}
OnAttack() {
    held = !held;
}

Таким образом, если я нажимаю удерживаемую кнопку, происходит переход к истине, поэтому он повторяет анимацию в каждом кадре, позволяя go сделать «задержанным» неправду и выполнить анимацию в режиме ожидания

0 голосов
/ 21 января 2020

Я вижу, что вы ответили на свой вопрос, но вместо того, чтобы проверять, была ли нажата клавиша с Input.GetKeyDown(), вы можете проверить, нет ли на значения с Input.GetKey() и создать такой метод.

private void Update()
{
    if(Input.GetKey("your key code"))
    {
        Attack();
    }
}   

Единственная проблема в том, что он будет вызываться каждый кадр, чтобы изменить это, вы можете добавить ссылку на время последней атаки, а затем проверить ее, чтобы узнать, может ли она снова атаковать.

private float lastAttack;
private float attackDelay = 0.5f;

private void Update()
{
    if(Input.GetKey("your key code") && Time.time + attackDelay >= lastAttack)
    {
        lastAttack = Time.time;
        Attack();
    }
}   

Что касается выяснения, какой код ключа использовать, откройте настройки проекта и посмотрите в разделе «Ввод».

Панель настроек : Редактировать-> Настройки проекта-> Ввод

Также в будущем, чтобы получить помощь, следуйте инструкциям . Guidlines

0 голосов
/ 21 января 2020

Для этой цели вы можете использовать таймер в сочетании с событиями KeyUp и KeyDown. Пожалуйста, посмотрите на следующую ссылку. Это очень похоже на вашу проблему. Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...