Как мне сопоставить мою анимацию с трансформацией в Unity3d? - PullRequest
0 голосов
/ 07 октября 2019

Я реализовал движение игрока и прыгнул в своей игре. Я также прикрепил анимацию бега и прыжка к аниматору. Однако анимация прыжка не совсем соответствует вертикальному движению игрока. Как я могу соответствовать им идеально?

Заранее спасибо,

void Control()
{
    if (charController.isGrounded)
    {
        float h = Joystick.GetHorizontalAxis("MyJoystick");
        float v = Joystick.GetVerticalAxis("MyJoystick");

        moveDirection = new Vector3(h, 0.0f, v);
        moveDirection *= (speed * sprint);
        anim.SetFloat("WalkSpeed", moveDirection.magnitude);

        if (moveDirection.magnitude > 0.5)
        {
            anim.SetFloat("WalkSpeed", moveDirection.magnitude / speed);
            anim.SetFloat("Walk", 1.0f);
            transform.forward = moveDirection;
        }

        else if (moveDirection.magnitude > 0 && moveDirection.magnitude < 0.5)
        {
            anim.SetFloat("WalkSpeed", moveDirection.magnitude / (speed * 0.5f));
            anim.SetFloat("Walk", 0.5f);
            transform.forward = moveDirection;
        }

        else if (moveDirection.magnitude == 0)
        {
            anim.SetFloat("Walk", 0f);
        }

        if (Input.GetKeyDown("space"))
        {
            moveDirection.y = jumpSpeed;
            anim.SetTrigger("Jump");
        }
    }

    moveDirection.y -= gravity * Time.deltaTime;
    charController.Move(moveDirection * Time.deltaTime);
}

1 Ответ

0 голосов
/ 09 октября 2019

В компоненте Animator есть возможность делать то, что вы хотите.

Здесь - это ссылка, которая описывает это более подробно.

...