UE 手柄点击UI 事件

手柄移动鼠标

这个操作是手柄右遥感

其实虚幻引擎自带手柄按下A键就是确认。(我试了好久,才发现UE5自带A键确认,我以为A键没有用。。。)所以只需要让UI中的按钮聚焦就行,整个用户界面的话用这个布尔变量聚焦,用户界面中的单个按钮用这个节点聚焦,添加在你这个UI蓝图中的事件构造后

按钮可以做成鼠标悬停时聚焦

用户界面响应其它手柄按键,重载中有个按下键时函数(OnKeyDown),这个方法必须要有一个按钮且设置为聚焦,聚焦时不能有其它的界面生成,以免被别的界面聚焦,以下方法就可以实现其它按键响应

由于没有具体的参考引用,以下基于通用的UE5知识进行关于CommonUI里CommonActionWidget的介绍。 ### 功能介绍 CommonActionWidget 是UE5 CommonUI框架中的一个重要组件,它主要用于处理和显示与输入操作相关的信息。其核心功能在于将输入动作(如按键、手柄操作等)与特定的文本描述关联起来,方便用户在界面上直观地了解可执行的操作及其对应的输入方式。例如,在游戏的菜单界面中,使用 CommonActionWidget 可以清晰地展示“按下 X 键确认”“按下 Y 键返回”等提示信息,增强用户与界面的交互性和可操作性。 ### 使用指南 #### 1. 创建 CommonActionWidget 在UE5编辑器中,可以通过蓝图或C++代码来创建 CommonActionWidget。 **蓝图方式**: 在内容浏览器中,右键选择“User Interface” -> “Common Action Widget” 来创建一个新的 CommonActionWidget 蓝图类。然后在需要使用该组件的界面蓝图中,将其拖放到视图中。 **C++ 方式**: ```cpp #include "CommonActionWidget.h" // 在某个 UUserWidget 派生类中添加一个 CommonActionWidget 成员变量 UPROPERTY(BlueprintReadOnly, meta = (BindWidget)) UCommonActionWidget* MyActionWidget; // 在构造函数或初始化函数中进行初始化 void UMyUserWidget::NativeConstruct() { Super::NativeConstruct(); if (MyActionWidget) { // 进行后续的配置操作 } } ``` #### 2. 配置输入动作和文本 配置输入动作和文本时,需要关联输入动作和对应的文本描述。可以在蓝图中通过事件图表或在C++代码中调用相应的函数来完成。 **蓝图方式**: 在 CommonActionWidget 的蓝图类中,找到相关的属性面板,设置“Action Name”(输入动作的名称)和“Display Text”(显示的文本描述)。 **C++ 方式**: ```cpp if (MyActionWidget) { MyActionWidget->SetActionName(FGameplayTag::RequestGameplayTag("Input.Action.Confirm")); MyActionWidget->SetDisplayText(FText::FromString("确认")); } ``` #### 3. 响应输入事件 若要让 CommonActionWidget 对输入事件做出响应,需要在蓝图或C++代码中绑定相应的事件处理函数。 **蓝图方式**: 在事件图表中,找到 CommonActionWidget 的“On Action Triggered” 事件,并连接到相应的自定义事件或函数节点。 **C++ 方式**: ```cpp if (MyActionWidget) { MyActionWidget->OnActionTriggered.AddDynamic(this, &UMyUserWidget::OnMyActionTriggered); } void UMyUserWidget::OnMyActionTriggered() { // 处理输入事件的逻辑 } ``` ### 相关问题解决方案 #### 1. 输入动作不显示 - **原因**:可能是输入动作的名称未正确配置,或者对应的输入映射未在项目设置中定义。 - **解决方案**:检查 CommonActionWidget 的“Action Name” 属性,确保其与项目设置中的输入映射名称一致。同时,在项目设置的“Input” 选项卡中,确认输入映射已正确定义。 #### 2. 显示文本不更新 - **原因**:可能是在代码或蓝图中没有正确更新显示文本的属性。 - **解决方案**:检查设置显示文本的代码或蓝图节点,确保在需要更新文本时,调用了正确的设置函数,如 `SetDisplayText`。 #### 3. 输入事件未触发 - **原因**:可能是输入事件的绑定出现问题,或者输入设备未正常工作。 - **解决方案**:检查输入事件的绑定代码或蓝图节点,确保事件处理函数正确绑定。同时,检查输入设备(如键盘、手柄等)是否正常连接和配置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值