繁体   English   中英

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

[英]Unity - handle 2 input for keybinding in my game

在我的游戏中你可以控制单位,每个单位都有法术,我们想给用户改变他不同法术的键绑定的可能性。

目标是例如有可能组合输入法术(例如:“ctrl + H”发送法术)

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

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

这是我的脚本波纹管,你知道我如何创建它吗?

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 来确保逻辑只发生一次,因此它只会在键释放时为真。

感谢特里科的回答。

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

这就是为什么我想要将 2 个输入保存为一个(如果可能)并将其与我的单元 Y 的拼写 n°X 相关联的原因

暂无
暂无

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

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