瀏覽代碼

feat: 添加增强输入的介绍

liucong5 2 年之前
父節點
當前提交
0137690b4f

二進制
UE5/增强输入/Image/001.png


二進制
UE5/增强输入/Image/002.png


二進制
UE5/增强输入/Image/003.png


二進制
UE5/增强输入/Image/004.png


二進制
UE5/增强输入/Image/005.png


二進制
UE5/增强输入/Image/006.png


二進制
UE5/增强输入/Image/007.png


二進制
UE5/增强输入/Image/008.png


+ 47 - 0
UE5/增强输入/README.md

@@ -0,0 +1,47 @@
+# 增强输入
+
+旧的输入系统实现基础的功能比较简单,如果想构建更复杂的机制就需要在 User 层做更多的工作
+
+对于新的输入系统,有一些期望
+
+- 重新梳理简化。从 Axis/Action => Action
+- 运行时重映射输入场景, UInputMappingContext
+- 对初级用户易配置,大量默认行为实现, Tap/Hold...
+- 对高级用户易扩展,可继承子类扩展
+  - 修改器:修改输入值
+  - 触发器:决定触发条件
+  - 优先级:配置输入场景优先级
+- 模块化,不再只依赖ini配置,以资源asset方式配置,堆栈式分隔逻辑
+- 提高性能,不需要检查所有的输入,只需要关心当前的
+
+![](Image/001.png)
+
+> 开启增强输入插件,重启编辑器
+
+![](Image/002.png)
+
+将默认的 `Player Input` 和 `Input Component` 的类设置成 `Enchanced Input` 的类
+
+![](Image/003.png)
+
+创建 `Input Mapping Context` 命名为 `IMC_Move` 和 `Input Action` 命名为 `IA_MoveForward`
+
+随后可以将 `IMC_Move` 配置成如下所示,这一步将事件(`IA_MoveForward`)与具体的案件进行绑定,通过这种操作可以解耦事件与触发条件,不同的 `Input Mapping Context` 可以绑定相同的事件
+
+![](Image/005.png)
+
+![](Image/006.png)
+
+![](Image/007.png)
+
+> 通过设置 `IA_MoveForward` 的配置,可以修改其触发事件传入的参数(当前是bool表示是否触发,可以修改为Axis1D来适配手柄)
+
+![](Image/008.png)
+
+> 通过 `AddMappingContext` 来应用输入
+
+**按键**与**事件**的触发其实可以是**多对多**的关系
+
+- 一个事件可以由多种按键触发,`R` 和 `->` 都可以触发向右移动
+- 一个事件可以有多个按键同时点击触发,`shift` + `w` 可以触发瞬移
+