在Unreal Engine安卓项目中获取蓝牙鼠标输入的问题咨询
Unreal Engine安卓项目蓝牙鼠标输入无响应的解决方法
1. 配置Android权限
安卓系统对蓝牙设备访问有严格权限要求,需在项目中添加对应权限:
- 打开
Project Settings > Platforms > Android > Advanced > Additional Manifest Requirements,添加以下权限代码:
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
- Android 11及以上版本需动态申请运行时权限,可在游戏启动时通过代码调用
UAndroidPermissionFunctionLibrary::RequestPermissions请求BLUETOOTH_CONNECT权限。
2. 启用UE安卓鼠标支持
这是最容易忽略的关键设置:
- 进入
Project Settings > Platforms > Android > Application Settings,找到Input板块,勾选Enable Mouse Support选项。
3. 检查UE输入映射配置
确保输入系统已正确绑定鼠标轴:
- 打开
Project Settings > Input,确认已添加Mouse X和Mouse Y的轴映射,并绑定对应的处理函数(蓝图或C++均可)。 - 进入
Project Settings > Input > Mouse Settings,勾选Capture Mouse During Startup和Enable Mouse Input。
4. 代码/蓝图层面验证输入
如果默认输入未生效,可手动绑定事件排查:
- C++方式:在PlayerController中重写
SetupInputComponent,手动绑定鼠标轴事件:
void AMyPlayerController::SetupInputComponent() { Super::SetupInputComponent(); InputComponent->BindAxis("Mouse X", this, &AMyPlayerController::OnMouseX); InputComponent->BindAxis("Mouse Y", this, &AMyPlayerController::OnMouseY); } void AMyPlayerController::OnMouseX(float AxisValue) { UE_LOG(LogTemp, Log, TEXT("Mouse X Input: %f"), AxisValue); // 自定义X轴处理逻辑 } void AMyPlayerController::OnMouseY(float AxisValue) { UE_LOG(LogTemp, Log, TEXT("Mouse Y Input: %f"), AxisValue); // 自定义Y轴处理逻辑 }
- 蓝图方式:在PlayerController蓝图中添加
Get Mouse X/Get Mouse Y节点,连接日志输出,测试是否能获取到输入值。
5. 系统层面排查
- 确认蓝牙鼠标已与安卓设备成功配对并连接,可在系统设置中查看鼠标状态。
- 开启安卓开发者选项中的
Show touches和Pointer location,验证系统是否能识别鼠标移动,排除硬件或系统层面的问题。
内容的提问来源于stack exchange,提问作者Hooman BZ
相关产品推荐
相关产品推荐

