C# Unity-在我的游戏中处理键绑定的2个输入

C# Unity-在我的游戏中处理键绑定的2个输入,c#,unity3d,key-bindings,hotkeys,C#,Unity3d,Key Bindings,Hotkeys,在我的游戏中,你可以控制一个单位,每个单位都有咒语,我们想让用户有可能改变他不同咒语的键绑定 例如,目标是有可能为一个咒语组合输入(例如:“ctrl+H”发送咒语) 我在unity Store上发现了一个名为“Rewired”的插件,它似乎可以做到这一点,但它的成本为40欧元,并且处理了太多我不想要的功能 所以我尝试创建自己的脚本来解决我的问题,但我不知道如何创建两个按键组合 这是我的脚本贝娄,你对我如何创建这个有什么想法吗 KeyCode key; KeyCode curModifiersKe

在我的游戏中,你可以控制一个单位,每个单位都有咒语,我们想让用户有可能改变他不同咒语的键绑定

例如,目标是有可能为一个咒语组合输入(例如:“ctrl+H”发送咒语)

我在unity Store上发现了一个名为“Rewired”的插件,它似乎可以做到这一点,但它的成本为40欧元,并且处理了太多我不想要的功能

所以我尝试创建自己的脚本来解决我的问题,但我不知道如何创建两个按键组合

这是我的脚本贝娄,你对我如何创建这个有什么想法吗

KeyCode key;
KeyCode curModifiersKey;(alt, ctrl)
KeyCode nonModifierKey;
KeyCode firstModifierKeyInfo;
KeyCode finalKey;

public void DetectedSeveralInput(KeyCode key)
{
    if (key != KeyCode.AltGr)
    {
        if (key == KeyCode.LeftAlt || key == KeyCode.RightAlt || key == KeyCode.LeftControl || key == KeyCode.RightControl)
        {
            if (modifierPressedCount == 0)
            {
                firstModifierKeyInfo = key;
                modifierPressedCount += 1;
            }
            curModifiersKey = key;
        }
        nonModifierKey = key;
        //finalKey = curModifiersKey + nonModifierKey
        LogVariables();
    }
    else
    {
        Debug.Log("AltGR pressed");
        return;
    }
}

我所做的检测多个按键是这样的

void Update()
{
    bool shiftPressed = Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift);
    bool keyPressed = Input.GetKeyUp( /* other key code here */ );
    if(shiftPressed && keyPressed)
    {
        //Do logic here
    }
}

我用Input.GetKey检查按住的shift键,但通过让另一个检查Input.GetKeyUp来确保逻辑只发生一次,这样只有在释放键时才是真的。

谢谢Tricko的回答

但问题是,当你有10个单位,有4个法术时,我不能使用这个系统。 我的参考是星际争霸2,当你可以添加鼠标按钮或ctrl/shift/alt时,你有一个完整的面板用于你自己的键绑定


这就是为什么我想要将2个输入保存为一个(如果可能的话)并将其与我的单位Y的speel n°X关联的原因实际上,
keyPressed
应该是
input.GetKeyDown(/*something*/)
,因为您希望在按键时执行操作,而不是释放。