анимация продолжает работать, когда кнопка больше не нажимается - PullRequest
0 голосов
/ 22 июня 2019

целочисленное значение равно единице, и анимация продолжается.я не знаю, что не так.

Аниматор:

AnyState -> Jump (условие: «Jumping» равно 1)

Jump -> Transition (условие: «Jumping»)равно 0)

имеет время выхода = не отмечено

я попытался изменить код ключа, и GetKey для GetKeyDown все еще не работает.

ожидаемый результат: Jumping = 0

//6 Jumping Animation
if (Input.GetKey(KeyCode.Space))
{
        anim.SetInteger("Jumping", 1);
        moveDir.y = 2;
        moveDir = transform.TransformDirection(moveDir);

    }
if (Input.GetKeyUp(KeyCode.Space))
{
    anim.SetInteger("Jumping", 0);
    movementSpeed = 5f;

}

1 Ответ

0 голосов
/ 23 июня 2019

позвольте мне ответить на мой собственный вопрос: D

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

вот код:

if (Input.GetKey(KeyCode.Space)){

    StartCoroutine(jumping(2f)); //set time delay to 2 seconds before the anim stop

}

private IENumerator jumping(float Time){
anim.SetInterger("Jumping",1);
moveDir.y = 1;
moveDir *= Speed; //your movement speed value
moveDir = transform.TransformDirection(moveDir); //set local value of moveDir to world
yield return new WaitForSeconds(Time); //adjust the delay of your animation to stop
anim.SetInterger("Jumping",0) //Jumping animation stop after time delay
moveDir = new Vector3(0,0,0); //reset the Vector 3 to zero
}

Вот и все

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