输入系统组件

概述

输入系统组件是一个ActorComponent,设计为挂载到Pawn上,是输入系统的核心。

只需要给对应的Actor挂载此组件,即可开始使用输入系统。

下面是该组件的主要API,每一个函数都有详细的注释提供了使用说明,这里不再赘述。


gips input api

组件参数


gips component settings

InputMappingContext

在角色的输入组件准备好时,会将此输入映射情景以InputPriority指定的优先级加入到增强输入子系统。确保在这里设置好输入系统组件会用到的InputAction。

InputConfig

指定DataAsset,是输入系统的主要配置,见下文。

InputControlSetups

指定DataAsset,以复用方式对输入事件进行检查和处理。见“输入控制设定”。

输入配置

InputConfig是一个类型为GIPS_InputConfig的数据资产。


gips input config

上图是一个InputConfig的案例,它主要用于将你的InputAction与InputTag进行一一对应的关联,以及是否绑定输入操作值变化的事件,如果勾选“ValueBinding”,你就可以通过InputTag拿到InputAction的当前值。

同时它还可以配置所有的输入缓冲区窗口,更多关于请查看输入缓冲

输入处理流程

请查看输入控制设定

获取输入操作值变化

通过事件监听

输入系统组件提供了多个事件可以让你在外部对输入事件做出响应,同时也提供异步节点简化使用。


gips input event listen

在任意地方获取值

通常,你要从蓝图或者某一个InputAction的值,你需要在Actor的事件图表,引用对应的InputAction资产以获取该InputAction的当前值。

使用输入系统组件,你可以在你项目的任意位置通过Tag获取到输入的当前值,同时也无需对特定的输入进行硬性引用。

如果需要通过Tag去访问值,请在InputConfig中勾选“ValueBinding”


gips get input value

在外部处理输入

有时候,你只想使用InputAction和InputTag之间的映射所带来的便利,但并不想走内置的输入处理流程,那么你可以通过勾选“ProcessingInputExternally”来关闭内置的输入处理流程。


gips externally input setting

然后通过事件去处理各种逻辑:


gips event handing
通常,你可以混用两种方式,并渐进式地创建和累积属于你自己的可复用输入处理器。