diff --git a/.obsidian/plugins/various-complements/histories.json b/.obsidian/plugins/various-complements/histories.json index e252252..f93bf70 100644 --- a/.obsidian/plugins/various-complements/histories.json +++ b/.obsidian/plugins/various-complements/histories.json @@ -1 +1 @@ -{"配置IA中的UserSetting选项。":{"配置IA中的UserSetting选项。":{"currentFile":{"count":1,"lastUpdated":1756439877872}}},"AddInputMappings":{"AddInputMappings":{"currentFile":{"count":1,"lastUpdated":1756453435438}}},"AddMappingContext":{"AddMappingContext":{"currentFile":{"count":1,"lastUpdated":1756453441609}}},"CommonActivatableWidget":{"CommonActivatableWidget":{"currentFile":{"count":1,"lastUpdated":1756798142445}}}} \ No newline at end of file +{"配置IA中的UserSetting选项。":{"配置IA中的UserSetting选项。":{"currentFile":{"count":1,"lastUpdated":1756439877872}}},"AddInputMappings":{"AddInputMappings":{"currentFile":{"count":1,"lastUpdated":1756453435438}}},"AddMappingContext":{"AddMappingContext":{"currentFile":{"count":1,"lastUpdated":1756453441609}}},"CommonActivatableWidget":{"CommonActivatableWidget":{"currentFile":{"count":1,"lastUpdated":1756798142445}}},"Enhanced":{"Enhanced":{"currentFile":{"count":1,"lastUpdated":1756976585288}}}} \ No newline at end of file diff --git a/03-UnrealEngine/UI/CommonUI.md b/03-UnrealEngine/UI/CommonUI.md index 9cf254f..2e6e13a 100644 --- a/03-UnrealEngine/UI/CommonUI.md +++ b/03-UnrealEngine/UI/CommonUI.md @@ -339,6 +339,28 @@ void UWidget::SetUserFocus(APlayerController* PlayerController) ``` +# CommonUI Use Enhanced Input +- 官方文档 + - [Using CommonUI With Enhanced Input](https://dev.epicgames.com/documentation/en-us/unreal-engine/using-commonui-with-enhnaced-input-in-unreal-engine) +- 视频 + - [UE5 - Common Ui: Enhanced Input Action Setup (Short Version)](https://www.youtube.com/watch?v=17nARa4jruc) + +1. 创建InputAction资产。 +2. 创建DataAesset(CommonMappingContextMetaData),为每个控制器都创建一个,比如Generic、PS5等 + 1. EnhancedInputMetaData 选择 Common Input MetaData + 2. 设置NavBarPriority(Epic的教程推荐为10,这样流出一些空余给后续更高优先级的输入) + 3. 根据需求勾选IsGenericInputAction,**这个输入是否在被UI接收的同时,发送到Character或者PlayerController中,并执行事件**。 + 4. 添加创建的InputAction到PerActionEnhancedInputMetaData中。 +3. 在InputAction的UserSettings - PlayerMappableKeySettings的MetaData中添加上一步创建CommonMappingContextMetaData +4. 创建IMC,添加InputAction并且设置按键。 +5. 在ProjectSettings - Enginge - EnhancedInput中的DefaultMappingContext中添加上一步创建的IMC,并且勾选RegisterWithUserSettings。 +6. 在CommonUI控件中添加IMC + 1. 在CommonButton的TriggerEnhancedInputAction中添加InputAction。 + 2. 另一个可以添加的就是TabList控件,TabList - Previous / Next Tab Input Action 中添加。 + +PS. CommonUI开启输入增强后,**CommonUI InputData**中也可以添加InputAction了。 +主要是作为CommonUI中InputActionDataTable的补充(DataTable面向多平台通用输入),一些犄角旮旯的还是通过InputAction设置比较方便。 + # TODO 1. [x] 解决一些Button Release方面的颜色bug 2. [ ] 修复KeyBoard UI Nav的bug,鼠标&键盘同时使用问题