输入系统包简介

更新页 :
页面创建日期 :

验证环境

窗户
  • 视窗 11
统一编辑器
  • 2020.3.25f1

关于输入系统包

在 Unity 的早期,我们使用输入管理器作为接收用户输入的机制。 然而,在游戏平台多样化的环境下,输入管理器已经过时了。 添加了管理用户输入的新机制:输入系统管理器。

截至 2022 年,新的“输入系统包”和“输入管理器”都可用以实现兼容性。 如果你有一个旧项目,你可以按原样使用“输入管理器”, 我认为它将来会过渡到新的“输入系统包”,因此在新项目中 使用输入系统包。

本节介绍如何设置它。

安装输入系统包

从 Unity 编辑器 2020.3.25f1 开始,输入系统包作为最初未安装的包进行管理。 要安装软件包,请执行以下操作:

创建项目并启动 Unity 编辑器后,从菜单中选择窗口>包管理器。

出现“包管理器”屏幕时,从包中选择“Unity 注册表”。

如果向下滚动左侧的列表,则有“输入系统”,因此请选择它并单击右下角的“安装”按钮。

安装后,它将显示为已安装,因此请关闭对话框。

如果安装软件包后显示以下对话框,请单击“是”按钮以自动配置下一个“激活输入系统软件包”。 在这种情况下,Unity 编辑器将重新启动。

This project is using the new input system package but the native platform backends for the new input system are not enabled in the player settngs. This means that no input from native devices will come through.

Do you want to enable the backends? Doing so *RESTART* the editor and will *DISABLE* the old UnityEngine.Input APIs.

激活输入系统包

由于我刚刚安装了该软件包,因此我目前有一个过时的输入管理器处于活动状态。 将其切换到输入系统包。

从菜单中选择编辑>项目设置。

当“项目设置”对话框打开时,从左侧菜单中选择“播放器”。

在下面的选项卡中,选择PC,Mac...。 选择“设置”选项卡,然后在底部的组中展开“更多设置”。

如果向下滚动到一定程度,则会在“设置”类别中找到一个名为“正在使用的输入处理”的项目,您可以在其中选择“输入系统包(新)”。 您可以暂时激活两者,但这很混乱,因此对于新项目,最好仅使用输入系统包。

进行更改后,将出现以下对话框,因此请单击“应用”以重新启动Unity编辑器。

就是这样,你完成了!

关于在代码输入中使用“UnityEngine.InputSystem”命名空间导致错误的问题

我目前还没有输入代码,所以不会是错误, 在输入代码(例如 Visual Studio)时尝试使用该命名空间时 UnityEngine.InputSystem ,您可能会收到一条错误消息,指出命名空间不存在。

例如,如果在安装“输入系统包”之前创建脚本。

这是因为项目 UnityEngine.InputSystem 没有对 的引用。 要解决此问题,请执行以下操作:

从菜单中选择编辑>首选项。

从左侧菜单中选择“外部工具”,然后单击“重新生成项目文件”按钮。

通过这样做,Visual Studio UnityEngine.InputSystem 将添加到引用中。

此外,代码没有错误。

将 UI 中用户输入的接受更改为输入系统包

如果不使用 Unity UI,则此字段(例如输入字段或下拉列表)无关紧要,应忽略。

在视图中放置输入字段、下拉列表等时,将自动创建画布并将 UI 对象放置在那里。 同时,创建一个名为“事件系统”的对象。 这是一个对象,用于管理在 UI 中完成某些输入时发生的情况。

此事件系统最初使用较旧的输入管理器运行。 如果仅启用输入系统包,则 UI 将无法按原样工作,因此需要更改为输入系统包。

若要进行更改,请先选择“事件系统”。

然后,检查器的“独立输入模块”中会显示警告。

单击“替换为输入系统 UIInput模块”按钮,将“独立输入模块”替换为“输入系统 UI 输入模块”。

游戏上的 UI 现在应正确接受输入。