【问题标题】:Why doesn't my character attack while moving diagonally?为什么我的角色在对角线移动时不攻击?
【发布时间】:2021-06-27 20:48:13
【问题描述】:

我在 Udemy 和 Youtube 上学习了一些简单的教程,并创建了一个涉及步行和攻击的玩家控制器。我似乎无法弄清楚为什么我在按住 2 个方向输入时无法攻击。当我向上和向右移动时会播放攻击动画,但不会在向下/向右、向下/向左或向上/向左移动时播放。

这是我正在使用的代码

    void Update()
{
    //Movement

    theRB.velocity = new Vector2(Input.GetAxisRaw("Horizontal"), (Input.GetAxisRaw("Vertical"))) * moveSpeed;

    myAnim.SetFloat("moveX", theRB.velocity.x);
    myAnim.SetFloat("moveY", theRB.velocity.y);

    //Attack

    if (Input.GetKeyDown(KeyCode.Space))
    {
        Attack();
    }

    void Attack()
    {
        myAnim.SetTrigger("Attack");
    }


}

我知道 Attack() 方法除了动画之外还没有任何效果,但是我无法在对角线移动时播放动画。任何帮助将不胜感激。

【问题讨论】:

  • 将 AttackCode 放在移动 Code 之前可能是值得的。
  • okeydokey!您能否编辑您的帖子以包含动画师的屏幕截图?

标签: c# unity3d 2d


【解决方案1】:

好的,让我按位解释一下 使用 Unity animator 时不能同时运行 2 个动画。我认为您可能正在使用这个

而不是从任何状态跳动。我的意思是默认情况下它会处于空闲状态,并且只有在角色处于空闲动画时才会攻击。所以为了防止这种情况,你可以使用

它会做的是它会设置玩家,即使它正在行走。如果不行走,则必须将转换设置回 IDLE,如果正在行走,则必须将转换设置回行走。如果你犯了这个错误,我希望你能得到答案。

【讨论】:

  • 我试过这个,它似乎并没有解决问题。我不确定这是否是动画师的问题。谢谢你的意见。 :)
  • 您能否像 Peter Hayman 在 cmets 中提出的那样通过提供视频/一些图像来解释您的问题?
  • 当我按w和a时,向上和向左移动是同时的,空格键不会触发攻击。我发现当我将攻击按钮从空间切换到鼠标按钮时,我的问题就消失了。我会尽力获取图片和视频。对不起,大声笑,我一直忙于工作。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 2019-12-16
  • 2013-11-16
  • 1970-01-01
相关资源
最近更新 更多