繁体   English   中英

unity 2D animation 仅在右移时播放

[英]Unity 2D animation only playing when moving right

这是我第一次统一制作动画。 我正在使用一个名为“isRunning”的 boolean,它在每个用于检测输入的 if 语句下设置为 true。 这应该会触发 2D 骑士角色的 animation 运行。 但是,这仅适用于“d”键,不适用于其他任何键(wa 和 s)。 这是代码:

private void TakeInput()
    {
        direction = Vector2.zero;

        if (Input.GetKey(KeyCode.W))
        {
            direction += Vector2.up;
            animator.SetBool("isRunning", true);
        }
        if (Input.GetKey(KeyCode.A))
        {
            direction += Vector2.left;
            animator.SetBool("isRunning", true);
        }
        if (Input.GetKey(KeyCode.S))
        {
            direction += Vector2.down;
            animator.SetBool("isRunning", true);
        }
        if (Input.GetKey(KeyCode.D))
        {
            direction += Vector2.right;
            animator.SetBool("isRunning", true);
        }
        else 
        {
            animator.SetBool("isRunning", false);
        }
    }

在此处输入图像描述

else 只连接到最后一个 if。 如果在某些情况下应该是 else if 像这样

{
    direction = Vector2.zero;

    if (Input.GetKey(KeyCode.W))
    {
        direction += Vector2.up;
        animator.SetBool("isRunning", true);
    }
    else if (Input.GetKey(KeyCode.A))
    {
        direction += Vector2.left;
        animator.SetBool("isRunning", true);
    }
    else if (Input.GetKey(KeyCode.S))
    {
        direction += Vector2.down;
        animator.SetBool("isRunning", true);
    }
    else if (Input.GetKey(KeyCode.D))
    {
        direction += Vector2.right;
        animator.SetBool("isRunning", true);
    }
    else 
    {
        animator.SetBool("isRunning", false);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM