C# 在Unity C中,同时使用几个关键输入会产生意外的行为#

C# 在Unity C中,同时使用几个关键输入会产生意外的行为#,c#,unity3d,input,C#,Unity3d,Input,在下面的代码中,无法打印“FBleftcontrol”,这也取决于按键的顺序和组合,有时无法打印其他行 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { bool LeftControl = false; bool LeftShift = false; bool LeftAlt = false

在下面的代码中,无法打印“FBleftcontrol”,这也取决于按键的顺序和组合,有时无法打印其他行

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    bool LeftControl = false;
    bool LeftShift = false;
    bool LeftAlt = false;
    // Update is called once per frame
    void Update()
    {
        LeftControl = Input.GetKey(KeyCode.LeftControl);
        LeftShift = Input.GetKey(KeyCode.LeftShift);
        LeftAlt = Input.GetKey(KeyCode.LeftAlt);

        if (LeftAlt || LeftShift) fb();
        else fa();
    }

    private void fb()
    {
        print("fb");
        if (LeftControl)
        {
            if (Input.GetKeyDown(KeyCode.Alpha1)) print("leftcontrol");
        }
        else
        {
            if (Input.GetKeyDown(KeyCode.Alpha1)) print("NOleftcontrol");
        }
    }

    private void fa()
    {
        print("fa");
        if (LeftControl)
        {
            if (Input.GetKeyDown(KeyCode.Alpha1)) print("leftcontrol");
        }
        else if(LeftShift)
        {
            if (Input.GetKeyDown(KeyCode.Alpha1)) print("leftshift");
        }
    }
}
我尝试过的事情: 闩锁布尔; 使用getkey/getkeydown/getkeyup的所有可能组合;
将其全部放在更新中,忘记调用函数,Unity Editor正在窃取您的键盘焦点,因为大多数修改键都绑定到它的GUI上。 使用
KeyCode.A、KeyCode.S、KeyCode.C
而不是Alt、Shift、Control尝试相同的代码,您的代码将按预期工作

不过,这应该只在编辑器中发生,而不是在最终构建中发生

不幸的是,我不知道有什么办法可以在编辑器中避免这种情况:
我只想在开发过程中使用不同的键绑定。

Unity Editor正在窃取您的键盘焦点,因为大多数修改键都绑定到它的GUI上。 使用
KeyCode.A、KeyCode.S、KeyCode.C
而不是Alt、Shift、Control尝试相同的代码,您的代码将按预期工作

不过,这应该只在编辑器中发生,而不是在最终构建中发生

不幸的是,我不知道有什么办法可以在编辑器中避免这种情况:
我只会在开发过程中使用不同的键绑定。

这对我很有用。您确定正确测试了代码吗?好的,您需要左alt或左shift向下运行fb,然后还需要左控件来打印左控件。。但是你也需要那个框架来按下alpha 1。。是的,这是一个非常特殊的硬件限制:你的键盘只能同时报告这么多的按键。通常是3.正如@Draco18s所说,这可能是关于键盘的问题。检查键盘防重影,看看你的键盘可以同时处理多少次按键检查这个网站:关于这个网站:我可以按下+10个键,但仍然注册,fa也可以正常工作(前提是我没有先尝试使用fb),涉及的键比fb多。为了以防万一,我试过几个键盘,目前我有一个机械键盘,它适合我。您确定正确测试了代码吗?好的,您需要左alt或左shift向下运行fb,然后还需要左控件来打印左控件。。但是你也需要那个框架来按下alpha 1。。是的,这是一个非常特殊的硬件限制:你的键盘只能同时报告这么多的按键。通常是3.正如@Draco18s所说,这可能是关于键盘的问题。检查键盘防重影,看看你的键盘可以同时处理多少次按键检查这个网站:关于这个网站:我可以按下+10个键,但仍然注册,fa也可以正常工作(前提是我没有先尝试使用fb),涉及的键比fb多。为了以防万一,我试过几个键盘,现在我有一个机械键盘