首页 > 解决方案 > 参数”不存在警告

问题描述

背景: 我目前正在为我的 2D 角色扮演游戏创建一个近战组合系统。玩家第一次攻击会触发第一次攻击动画,如果玩家选择第二次攻击,则会触发第二次攻击动画。我通过调用一个攻击函数来让系统工作,该函数根据我需要播放的动画传递一个字符串参数。

因此,每帧都会调用 ComboOrder 函数来对动画进行排序,一旦玩家按下“E”键,就会使用“Attack-1”或“Attack-2”调用 Attack 函数。

问题:代码和动画工作正常,但是,在我注意到对游戏其他部分进行了多次更改后,每次按“E”键时都会收到警告。我所做的更改与此完全无关,因此我看不到与警告之间的联系。

在此处输入图像描述

Parameter" does not exist

我尝试过的解决方案:我在网上搜索了答案,但是没有一个适合我的问题。似乎 Unity 认为我正在传递字符串 " 这将指示语法错误,但我已经仔细检查了我的代码,但我找不到任何东西。我还听说它是 Unity 中的一个错误但他们从来没有告诉过如何解决它。如果是这种情况,我能做些什么吗?

这是代码:

    void ComboOrder() {
    if (comboIndex == 1)
    {
            if (Input.GetKeyDown(KeyCode.E)) // Attack Input
            {
                Attack("Attack-1");
                comboIndex++;
            }
    } else if (comboIndex == 2) {
            if (Input.GetKeyDown(KeyCode.E)) // Attack Input
            {
                Attack("Attack-2");
                comboIndex--;
            }
    }
}

public void Attack(string attack)
{
    animator.SetTrigger(attack);
}

以下是播放器的 Animator 设置:

动画设置 动画设置检查器

标签: c#unity3danimationgame-development

解决方案


所以大概两周没玩游戏了,回来仔细看了一下,果然是你说的,有一个动画事件调用了这个函数,没有传参数,因为没有编码,我从来没有抓住它。感谢所有帮助过的人。


推荐阅读