当使用统一输入系统发生按钮按下事件时

when button pressed event happens using unity input system

我正在尝试制作一个 C# 脚本以使用 'Ink.Runtime' 创建对话,这部分代码试图在按下按钮时切换到新的文本行,但它赢了不起作用,它不断给我错误消息:

Assets\C# Scripts\DialogueManager.cs(37,13):错误 CS0103:名称 'InputManager' 在当前上下文中不存在

代码如下:

   private void Update()
    {
        if (!dialogueIsPlaying)
        {
            return;
        }
        if (InputManager.GetInstance(). GetSubmitPressed())
        {
            ContinueStory();
        }
    }

我认为有一个问题是我没有定义 InputManager,或者可能是我仍在使用旧的输入系统,而这可以使用新的输入系统来编写。如果是其中任何一个,我将如何着手将 InputManager/converting 定义为较旧的输入系统。 我对使用 C# 进行编码比较陌生,因此找不到解决此问题的方法,非常感谢您的帮助!

如果您没有在代码中的任何位置声明 InputManager,那么您猜对了。为了使用新的输入系统,您需要定义输入操作(Brackeys 在此处描述得非常好 https://www.youtube.com/watch?v=Pzd8NhcRzVo)。

如果您需要 simlpe 解决方案,您可以使用旧的输入系统并检查是否像这样按下了特定的键 if (Input.GetKeyDown("space")) - Unity documentation,但我真的建议检查新的输入系统,因为它将是长的更好 运行