Enhanced Input
About 1 min
Enhanced Input
Enable
在Build.cs
中的PublicDependencyModuleNames
添加EnhancedInput
。 且需要在Project Setting
中确认默认的输入类型是Enhanced Input:
Core
主要有6大模块组成:
- UInputAction,输入动作,按键转换为游戏内的数值。
IA
- UInputModifier,输入修改器,对输入动作中的数值做出特定修改。
IM
- UInputTrigger,输入触发器,什么时候触发按键后的函数。
IT
- UInputMappingContext,输入映射上下文环境,绑定输入动作到按键和执行的函数。
IMC
- UEnhancedPlayerInput,输入处理,把按键关联上输入动作。
- UEnhancedInputComponent,输入组件,把输入动作关联上执行函数。
How To Use
Input Action
Input Modifier
在UInputAction
和UInputMappingContext
中都可以对一个输入动作设置修改器,在IMC
中是全局配置。如果两个同时都配置了,两个都会生效,先执行IMC
,在执行IA
。
Input Trigger
Input Mapping Context
Framework
在UE中的收到按键指令后执行流程如下:先压入Pawn,再压入关卡蓝图,接着PlayerController最后EnableInput的Actors。
在UEnhancedPlayerInput
中通过UInputMappingContext
来触发按键和输入动作。
在EnhancedInputComponent
中存储InputAction
和回调的映射,使用BindAction
来实现绑定。
总体流程如下:
AddMappingContext流程:
Debug
调试命令:
showdebug enhancedinput
Notes
- https://docs.unrealengine.com/5.0/zh-CN/enhanced-input-in-unreal-engine/
- https://zhuanlan.zhihu.com/p/470949422
- https://zhuanlan.zhihu.com/p/668048398
- https://zhuanlan.zhihu.com/p/640271313
- https://www.bilibili.com/video/BV14r4y1r7nz/