C# 如何使用其他代码调用Input.GetButtonDown?

C# 如何使用其他代码调用Input.GetButtonDown?,c#,unity3d,scripting,C#,Unity3d,Scripting,我有一个手势识别软件。当用户挥手时,我想通过调用Input.GetButtonDown(“Fire1”)执行单击。现在我有: public void Wave(){ if(waving code){ Debug.Log("user waved"); Input.GetButtonDown("Fire1"); } } “用户挥舞”日志显示良好,但未执行单击。如果有人能在这方面帮助我或提出其他建议,我将不胜感激 这里的问题是 输入。GetButtonD

我有一个手势识别软件。当用户挥手时,我想通过调用Input.GetButtonDown(“Fire1”)执行单击。现在我有:

    public void Wave(){
    if(waving code){
    Debug.Log("user waved");
    Input.GetButtonDown("Fire1");
    }
   }

“用户挥舞”日志显示良好,但未执行单击。如果有人能在这方面帮助我或提出其他建议,我将不胜感激

这里的问题是

输入。GetButtonDown(“Fire1”)

bool方法不是一个事件。因此,为了解决此问题,我建议您尝试以下解决方案:

  • 在以下位置下载zip文件:
  • 使用Unity项目中的脚本(C#)将其解压缩到资产目录
  • 重新加载MonoDevelop(如果已打开)
  • 在脚本顶部写入:使用WindowsInput
  • 而且。。。在课堂上,您可以使用它,例如:InputSimulator.SimulateKeyPress(VirtualKeyCode.RIGHT)//模拟右箭头按钮

  • 祝你好运,我希望这有帮助。

    这里的问题是

    输入。GetButtonDown(“Fire1”)

    bool方法不是一个事件。因此,为了解决此问题,我建议您尝试以下解决方案:

  • 在以下位置下载zip文件:
  • 使用Unity项目中的脚本(C#)将其解压缩到资产目录
  • 重新加载MonoDevelop(如果已打开)
  • 在脚本顶部写入:使用WindowsInput
  • 而且。。。在课堂上,您可以使用它,例如:InputSimulator.SimulateKeyPress(VirtualKeyCode.RIGHT)//模拟右箭头按钮

  • 祝你好运,我希望这有帮助。

    Input.GetButtonDown方法检查按钮是否关闭。似乎您已经假设它告诉程序要像按下按钮一样操作,但事实并非如此


    我认为,更基本的方面是为什么您要尝试模拟单击?当然,获取手势的位置信息并相应地采取行动会更简单?

    Input.GetButtonDown方法会检查按钮是否按下。似乎您已经假设它告诉程序要像按下按钮一样操作,但事实并非如此


    我认为,更基本的方面是为什么您要尝试模拟单击?当然,获得手势的位置信息并据此采取行动会更简单?

    @Aybe谢谢!尽管看起来您的答案与单击确定按钮的函数有关。我要做的就是替换光标。用户可以移动鼠标,一旦他挥手,下面的任何按钮都会被点击。有什么办法吗?非常感谢。您想从代码中模拟鼠标,对吗?如果是这样,那么我会在Windows上看到鼠标事件或SendInput。您将不得不p/invoke一点,这很容易。@Aybe谢谢您!尽管看起来您的答案与单击确定按钮的函数有关。我要做的就是替换光标。用户可以移动鼠标,一旦他挥手,下面的任何按钮都会被点击。有什么办法吗?非常感谢。您想从代码中模拟鼠标,对吗?如果是这样,那么我会在Windows上看到鼠标事件或SendInput。你需要p/调用一点,这很简单。我不知道Input.GetButtonDown是一个布尔值,谢谢你!我不确定你所说的“获取手势的位置信息并据此采取行动肯定会更简单”是什么意思。正如我在另一篇评论中提到的,我试图做的基本上是模拟光标点击。用户可以移动鼠标,一旦他挥手,下面的任何按钮都会被点击。我有一个放弃的代码,如果把它放在if语句中,它可以执行其他代码:比如更改字体、颜色等。但是我试图让它模拟鼠标点击,而不是一个预定义的代码。我不认为模拟鼠标点击是解决问题的最佳方法。显然,我看不出你到底在做什么,但对我来说,完全不点击似乎更符合逻辑?当用户用手势点击时,你想发生什么?字面上就是模仿点击哈哈。例如,有一个虚拟键盘,如果光标在“T”上方,用户挥手,我希望计算机键入“T”等等。好的,那么劫持鼠标点击是一个选项。但是,另一个选项是生成一个伪游标对象,当您调用其“Click()”函数时,它将根据悬停的对象执行相应的操作。我将让您自行决定您选择的路径。我不知道Input.GetButtonDown是一个布尔值,谢谢!我不确定你所说的“获取手势的位置信息并据此采取行动肯定会更简单”是什么意思。正如我在另一篇评论中提到的,我试图做的基本上是模拟光标点击。用户可以移动鼠标,一旦他挥手,下面的任何按钮都会被点击。我有一个放弃的代码,如果把它放在if语句中,它可以执行其他代码:比如更改字体、颜色等。但是我试图让它模拟鼠标点击,而不是一个预定义的代码。我不认为模拟鼠标点击是解决问题的最佳方法。显然,我看不出你到底在做什么,但对我来说,完全不点击似乎更符合逻辑?当用户用手势点击时,你想发生什么?字面上就是模仿点击哈哈。例如,有一个虚拟键盘,如果光标在“T”上方,用户挥手,我希望计算机键入“T”等等。好的,那么劫持鼠标点击是一个选项。但是,另一个选项是生成一个伪游标对象,当您调用其“Click()”函数时,它将根据悬停的对象执行相应的操作。至于你走哪条路,我将由你决定。