接下来,我们为每个要使用的动作添加一个HboxContainer 。 在我们的示例中,我们将使用三个动作: JUMP , CROUCH和KISS 。 因此,我们添加了第一个HboxContainer ,并为其添加了一个Label和一个Button 。 另外,让我们使按钮可切换。

接下来,让我们将这些动作添加到“输入映射”中。 转到项目>项目设置>输入地图,然后将JUMP , CROUCH和KISS添加为动作。 然后单击加号并添加密钥 。 使用任何您喜欢的键盘键。
- 借助3D Unity框架彻底改变游戏体验
- 创造身临其境的AR体验。 ARTris-第2部分
- 我的第一场比赛-为什么如此重要!
- 我希望了解有关营销第一款游戏的知识
- Vue.js通过神奇宝贝#3 Vuex进行了解释:状态管理

您应该以某种方式对齐“控制”节点中的不同节点,以便可以看到所有内容。 另外,将文本Jump,Crouch和Kiss添加到HBoxContainers内的Labels中 。
最后一些代码!
现在,我们打开附加到“控制”节点的脚本,并添加以下几行:

接下来,我们向每个按钮添加一个信号,以触发事件。 如果您想了解更多有关信号的信息,请点击此处。 我们有三个按钮,因此我们添加了三个pressed()信号以及以下代码:
每当按下按钮时,我们都会调用_mark_button()并将其动作名称作为字符串发送给他们。 我们的_mark_button方法如下所示:
更改按键
因此,我们希望可以更改键并将要更改的键的字符串分配给action_string 。 如果我们之前选择了一个,则将所有其他按钮设置为false。 接下来,我们添加一个输入事件,以获取新的输入。
如果can_change_key为true,我们只想调用_change_key 。 在调用_change_key之后,我们再次将can_changekey设置为false。 我们的_change_key如下所示。
首先,我们检查是否已经分配了密钥。 在这种情况下,它将删除密钥。 然后,我们检查此密钥是否已分配到其他位置,如果是,还将删除此密钥。 最后,我们添加一个新键,该键包含来自输入的事件,并将其添加到操作中,该操作仍然是我们的action_string 。 如果现在运行场景,则应该能够单击一个按钮,然后单击一个键。 然后应将按键分配给按钮。
在Godot自定义键绑定教程中添加第二个场景
到目前为止,一切都很好。 现在,我们必须检查它是否真正起作用。 让我们为此创建第二个场景。 在其中,我们仅创建一个空节点并向其中添加脚本。 在脚本中,我们编写以下内容:
我们还向场景添加一个按钮,创建一个信号,然后在其中导航回到场景1 。
然后回到场景1,在底部添加一个按钮,创建一个信号,然后在其中导航到场景2 。
我们已经准备好进行测试。 您可以为场景1中的动作分配不同的键,然后转到场景2并对其进行测试。 每次按或单击分配的键时,它都应在控制台上打印正确的键。
如果您觉得这有用,请在下面的评论中告诉我。 也可以随时查看其他Godot教程和主题。
最初在 www.gotut.net上 发布 。