Unity Новая система ввода и анимации - PullRequest
0 голосов
/ 07 апреля 2020

Я создаю основную c 2D игру-боец и пытаюсь заменить прежнюю систему ввода новой системой ввода. По этой причине обновление старых систем будет ожидать нажатия кнопок, а затем вызывать соответствующие функции при их нажатии. Движение было на самом деле самой легкой частью, просто оснастить 1D Vector и затем захватить поплавок для использования с движением, потрясающе. Однако сложность заключается в нажатии клавиш, чтобы изменить вещи в игре. Например, у меня есть вход 's', который должен привести к методу Crouch (). Этот метод изменяет анимацию и изменяет хитбоксы на более короткие и сообщает атаке также использовать меньшие хитбоксы. Метод Stand () вызывается при освобождении 's', чтобы вернуть все так, как оно есть. Мой объект Player Input установлен на «Invoke Unity Events», что приводит к соответствующему необходимому методу. Проблема в том, что даже если эти события установлены на pu sh и их отпускание, они считываются как эффект переключения вместо триггеров нажатия и отпускания (соответственно). Это делает то же самое с моей функцией атаки, потому что заставляет анимацию воспроизводиться дважды, один для нажатия и один для отпускания. Есть ли исправление для этого или это в настоящее время ошибка? Изменить: Вот некоторые изображения для пояснения и код, используемый для отражения всего, что происходит с функциональностью атаки. Дайте мне знать, если нужно что-то еще

public void Attack(){
    anim.SetTrigger("attack");
    StartCoroutine(wait());
 }
IEnumerator wait(){
    if(!isCrouched){
        yield return new WaitForSeconds(1.3f);
        SHitBox.enabled = true;
        yield return new WaitForSeconds(.5f);
        SHitBox.enabled = false;
    }
    if(isCrouched){
        yield return new WaitForSeconds(1.3f);
        CHitBox.enabled = true;
        yield return new WaitForSeconds(.5f);
        CHitBox.enabled = false;
    }
 }

Связывание Действие

1 Ответ

0 голосов
/ 09 апреля 2020

Думаю, я понял это. По крайней мере, для целей этой конкретной темы c. Ответ был не мой код. Есть то, что я собираюсь назвать ошибкой в ​​новой системе ввода Unity. В частности, были перехвачены три строки кода, которые вызвали три вызова моего метода. Исправление заключалось в комментировании двух строк кода. Вот нить, где это решается, случайно найденная на страницах справки GitHub, вот ссылка: https://github.com/Unity-Technologies/InputSystem/issues/959 проблема указана как близкая, но это все еще проблема для меня, лол ... Единственная проблема осталась заключается в том, что поведение выбора типа нажатия кнопки, которое я хочу использовать, все еще ведет себя странно. В основном входы все еще просто запускаются без прослушивания того типа входов, который я хочу. Я просто собираюсь начать поиск по коду единства, чтобы выяснить, где эти варианты влияют. Если в течение 8 часов не будет комментариев / ответов, я приму свой собственный ответ, потому что технически на него дан ответ, он просто приводит к другому вопросу.

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