欢迎光临散文网 会员登陆 & 注册

游戏原型系列 vol.9 为用户输入配置XBox控制器

2020-06-30 17:21 作者:NXL2  | 我要投稿

1.简介

如果您使用的是Unity 2019.2或更低版本,建议升级到Unity 2019.3版本

通过Unity的新输入系统(可作为可安装的软件包提供)可以轻松实现在Xbox中为用户输入配置Xbox控制器。在本教程中,我们将设置一个使用Xbox游戏控制器按钮的简单方案。


2.安装输入系统软件包

1. 从Unity Editor的顶部菜单下拉菜单中,选择Window > Package Manager

2. 在项目设置窗口中,从高级下拉菜单中,选择Show Preview Packages(显示预览包)

3. All Packages 列中,选择Input System(输入系统) ,然后选择Install (安装)图01 )。

图01:在“Package Manager(程序包管理器)”窗口中安装输入系统程序包

4. 出现警告对话框,确认项目需要启用本机平台后端。选择,然后重新启动Unity编辑器。

5. 重新启动后,可以通过打开“ Project Settings(项目设置)” 来验证项目新安装的Input System(输入系统)。从顶部下拉菜单中选择Edit(编辑)> Project Settings(项目设置)

在左列中,选择Player 。在“ 项目设置” 窗口的主窗口中,选择“ Other Settings(其他设置)” 图02 )。展开其他设置,然后向下滚动到Active Input Handling(活动输入处理)。选择Both 和或Input System Package(New)图03 )。

图02:在“项目设置”窗口中选择“Player(播放器)的Other Settings(其他设置)”。

图03:验证对新输入系统包的Active Input Handling(有效输入处理)。


3.创建您的自定义输入

1. 通过在“项目”窗口中右键单击来创建一个新的Input Action ,然后选择Create > Input Actions 。将新的 Input Actions(输入操作)重命名为“ InputMaster ”。

2. 在项目窗口中双击新创建的“ InputMaster ”,以打开“ Input Actions(输入操作)” 窗口。

3. Input Actions 窗口的左上角,选择No Control Schemes(无控制方案)下拉菜单,然后选择Add Control Scheme 图04 )。

图04:Add Control Scheme(添加新的控制方案)

4. 在“ 添加控制方案” 窗口中,选择+ 按钮创建一个新的Control Scheme(控制方案),然后将“ Scheme Name(方案名称)” 重命名为“ Xbox Control Scheme(Xbox控制方案) ”(图05 )。以后,您总是可以创建其他控制方案来添加其他输入源,例如从键盘输入。

图05:选择+按钮以添加新的控制方案

5. 在菜单中,选择Gamepad(游戏手柄)> Xbox Controller(Xbox控制器)>Xbox Controller(Xbox控制器)图06 )。

图06:选择Xbox控制器

6. 接下来,在“ Add Control Scheme(添加控制方案)” 窗口中,选择“ Save(保存)” 图07 )。

图07:保存Xbox控制方案

7. 接下来,在Input Actions 窗口的左侧Action Maps 面板上,选择+ 按钮以创建New Action Map 。Action Maps(动作映射)是用于组织输入内容的类别,例如,对于Player,菜单项,摄像机视图或载具,您可能具有单独的动作映射类别。在这里,将您的Action Map重命名为“ Player ”。

8. 一个新的行动已经被添加到中间Action(动作)面板。 Action(动作)本质上是事件,例如玩家奔跑或跳跃。双击“ 新动作” ,并将其重命名为“ Jump ”。然后,我们将绑定游戏手柄控制器上的特定按钮以触发每个动作。选择“ Jump 动作右侧的+ 按钮,然后选择“ Add Binding(添加绑定)” 图08 )。

图08:向新动作添加绑定

9. 接下来,在“ InputMaster ”窗口的“ Properties(属性)” 面板中,选择“ Binding Path(绑定路径)” 字段(图09 )。

图09:选择绑定路径

10. 您将看到Gamepad 按钮和控件的列表。一直向下滚动以选择Xbox Controller(Xbox控制器)按钮的特定列表(图10 )。

图10:选择Xbox Controller的特定按钮

11. 从可用选项列表中选择Xbox控制器的特定按钮。或者,选择“ Listen(监听)” 按钮,然后按下控制器本身上的相应按钮(图11 )。

图11:选择“监听”按钮,等待来自控制器本身的输入。

12. 我们可以进一步为玩家的移动分配控制器动作,这与前面通过按钮触发跳跃的步骤大致相同。为了提高效率,您还可以设置一个动作来包含沿2个向量的运动。在这里,我们将创建一个新的Action ,将其重命名为“ Movement ”,然后选择Button 来更改Action Type 图12 )。

图12:选择Action Type Button(操作类型按钮)

13. 选择Pass Through 作为Action Type ,然后选择Vector 2 作为其Control Type 图13 )。

图13:为控件类型选择Vector(向量)2。

14. 现在,当您选择“Movement(移动动作)” 旁边的+ 按钮时,您可以选择添加2D Vector Composite(2D矢量合成)图14 )。

图14:选择添加2D矢量复合。

15. 以与前面的步骤相同的方式将运动矢量分配给相应的Xbox Controller输入(图15 )。

图15:选择相应的Xbox控制器输入。

16. 通过输入系统提供的各种功能,创建项目所需的任何其他Input Action(输入动作)。完成后,选择Save Asset(保存资产)。有关输入系统的完整文档,请参考 UnityAPI

17. 现在,我们将为Player设置Player Input Component(玩家输入组件)。在“层次结构”窗口中选择“玩家GameObject”后,在“检查器”窗口中选择“ Add Component(添加组件)”,然后搜索“ Player Input(玩家输入)” 图16 )。

图16:将Player Input Component(玩家输入组件)添加到Player。

18. 接下来,选择“对象选择器”按钮,将我们名为“ InputMaster ” 的输入动作资产分配给玩家输入组件(图17 )。

图17:选择“对象选取器”按钮以将InputMaster资产分配给Player Input。

19. 接着,分配Default Scheme(默认方案)的Xbox Control Scheme(Xbox控制方案),并且分配Default(默认映射)Player图18 )。

图18:分配默认方案和默认映射。

20. 最后,输入系统将为您的输入操作生成C#脚本,以进一步修改项目的需求。从Project窗口中选择“ InputMaster ” ,在Inspector窗口中选择Generate C#Class 复选框,然后选择Apply 图19 )。

图19:生成C#脚本。

21. 结果代码保存为C#脚本,保存的名称为“ InputMaster.cs ”(图20 )。

图20:生成的C#脚本。

22. 进入Play Mode(播放模式)并测试您项目的Xbox Game Controller输入。您的个人项目将根据所需的感觉来确定哪种Input Action(输入操作)更合适。

4.结论

Xbox游戏控制器易于在Unity的输入系统包中进行配置和使用。该输入系统实现了多种输入控制选项绑定到特定的Xbox游戏控制器上的按钮。

游戏原型系列 vol.9 为用户输入配置XBox控制器的评论 (共 条)

分享到微博请遵守国家法律