KeyPressed вызывается несколько раз при обновлении - PullRequest
0 голосов
/ 16 февраля 2019

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

Вот мой метод обновления:

void Update() {
    attackArea.enabled = false;
    InputCharacter();
    MoveAttackArea();
    SetAnimation();
    ApplyColorFilters();
}

и мой метод InputCharacter:

void InputCharacter() {
    direction = Vector2.zero;
    if (Input.GetKey(KeyCode.B)) {
        lastAttackTime = currentTime;
        Attack();
    } else if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W)) {
        Move(Vector2.up);
    } else if (Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S)) {
        Move(Vector2.down);
    } else if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A)) {
        Move(Vector2.left);
    } else if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D)) {
        Move(Vector2.right);
    }
}

, также мой метод атаки:

private void Attack() {
    Debug.Log("attacking");
    animator.SetTrigger("attack");
    attackArea.enabled = true;
}

Я не знаюНе знаю, относится ли эта часть к этой теме, но:

Журнал показывается несколько раз, и моя анимация воспроизводится дважды (когда я запускаю анимацию уничтожения объекта, она запускается дважды, я не знаю, связана ли она)

1 Ответ

0 голосов
/ 16 февраля 2019

Заменить

Input.GetKey

на

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