
配置Xbox控制器以实现用户输入 - 2019.3
Tutorial
Beginner
+0XP
20 mins
(9)
Unity Technologies

通过Unity的新输入系统(可作为安装软件包提供),可以在Unity中轻松配置Xbox控制器以实现用户输入。在本教程中,我们将设置一个使用Xbox游戏控制器按钮的简单情景。
Languages available:
1. 介绍
如果您使用的是Unity 2019.2或更低版本,请单击此处。
通过Unity的新输入系统(可作为安装软件包提供),可以在Unity中轻松配置Xbox控制器以实现用户输入。在本教程中,我们将设置一个使用Xbox游戏控制器按钮的简单情景。
2. 安装输入系统软件包
1. 从Unity编辑器的“Top Menu”下拉菜单中,选择“Window”>“Package Manager”。
2.在“Project Settings”窗口的“Advanced”下拉菜单中,选择“Show Preview Packages”。
3.在“All Packages”列中,选择“Input System”,然后选择“Install”(图01)。
4.此时将出现警告对话框,确认项目需要启用“Native Platform Backends”。 选择“Yes”,然后重新启动Unity编辑器。
5.重新启动后,您可以通过打开“Project Settings”来验证项目新安装的输入系统。从顶部下拉菜单中选择“Edit”>“Project Settings”。
在左侧列中,选择“Player”。 在“Project Settings”窗口的主窗口中,选择“Other Settings”(图02)。展开“Other Settings”,然后向下滚动到“Active Input Handling”。 选择“Both”或“Input System Package (New)”(图03)。
3. 创建自定义输入
1.通过在“Project”窗口中单击右键并选择“Create”>“Input Actions”,从而创建新的输入动作。 将新的输入动作重命名为“InputMaster”。
2.在“Project”窗口中双击新创建的“InputMaster”,以打开“Input Actions”窗口。
3.在“Input Actions”窗口的左上角,选择“No Control Schemes”下拉列表,然后选择“Add Control Scheme”(图04)。
4.在“Add Control Scheme”窗口中,选择+按钮以创建新的控制方案,然后将“Scheme Name”重命名为“Xbox Control Scheme”(图05)。 之后,您始终可以创建其他控制方案来添加其他输入源,例如从键盘输入。
5.在菜单中,选择“Gamepad”>“Xbox Controller”>“Xbox Controller”(图06)。
6.接着,在“Add Control Scheme”窗口中选择“Save”(图07)。
7.接下来,在“Input Actions”窗口的左侧“Action Maps”面板上,选择+按钮以创建新动作映射。 动作映射是用于反映如何组织输入的类别。例如,您可以为玩家、菜单项、摄像头视角或工具指定不同的动作映射类别。 这里,请将动作映射重命名为“Player”。
8.现在,“New Action”已添加到中间的“Actions”面板中。 动作本质上是事件,例如玩家奔跑或跳跃。 双击“New Action”并将其重命名为“Jump”。 然后,我们将绑定游戏手柄控制器上的特定按钮以触发每个动作。 选择“Jump”动作右侧的+按钮,然后选择“Add Binding”(图08)。
9.接下来,在“InputMaster”窗口的“Properties”面板中选择“Binding Path”字段(图09)。
10.您将看到游戏手柄按钮和控件的列表。 一直向下滚动,以选择Xbox Controller的特定按钮列表(图10)。
11.从可用选项列表中选择Xbox Controller的特定按钮。或者,选择“Listen”按钮,然后按下控制器上的相应按钮(图11)。
12.我们可以进一步针对玩家的移动分配控制器动作,这与前面通过按钮来触发跳跃的步骤大致相同。 为了提高效率,您还可以设置一个动作来包含沿2个向量方向的运动。 这里,我们将创建一个新的动作并将其重命名为“Movement”,然后选择“Button”来更改“Action Type”(图12)。
13.选择“Pass Through”作为动作类型,然后为其“Control Type”选择“Vector 2”(图13)。
14.现在,当您选择“Movement Action”旁边的+按钮时,可以添加“2D Vector Composite”(图14)。
15.按照与上述步骤相同的方式,将“Movement Vectors”分配给相应的Xbox Controller输入(图15)。
16.通过浏览输入系统所提供的各种功能,创建项目所需的其他任何输入动作。 完成后,选择“Save Asset”。 有关输入系统的完整文档,请单击此链接。
17.现在,我们将为玩家设置“Player Input”组件。 在“Hierarchy”窗口中选定“Player”游戏对象的情况下,在“Inspector”窗口中选择“Add Component”,然后搜索“Player Input”(图16)。
18.然后,选择“Object Picker Button”,从而将我们命名为“InputMaster”的输入动作资产分配给“Player Input”组件(图17)。
19.接下来,为“Default Scheme”选择“Xbox Control Scheme”,同时为“Default Map”选择“Player”(图18)。
20.最后,输入系统将为您的输入动作生成C#脚本,以进一步修改项目的需求。 从“Project”窗口中选择“InputMaster”,在“Inspector”窗口中选中“Generate C# Class”复选框,然后选择“Apply”(图19)。
21.生成的代码将另存为C#脚本,其名称为“InputMaster.cs”(图20)。
22.进入运行模式,测试您项目的Xbox游戏控制器输入。 您的个人项目可根据自己想要的感觉来确定哪种输入动作更合适。
4. 总结
Xbox游戏控制器易于在Unity的输入系统软件包中进行配置和使用。 利用输入系统可以将各种输入控制选项绑定到特定的Xbox游戏控制器按钮上。