当前位置:首页|资讯

通过识别鼠标或GamePad(手柄)的输入,来切换鼠标是否显示

作者:月少闲发布时间:2024-09-06

前提摘要

1. 首先要知道的是,通过控制器可以操控鼠标是否显示

playerController中的 show mouse cursor

2. 设置完是否展示鼠标后立即更改inputModeGame可以使鼠标立即消失而无需点一下才消失

这两种都可以立即隐藏鼠标,但是里面有一个坑点,下一条再说

注意:有一个说法是In Mouse Lock Mode需要调整,只有lock到当前游戏窗口,鼠标才能立即消失,如果没有lock,应该是需要多点一下来获取窗口聚焦,很恶心

3. Any key可以识别所有的key down input事件,除了鼠标的2d-axis,这玩意需要单独识别

其中,只有在gameModeOnly时,鼠标的移动才始终会识别为输入,否则一定要伴随着keyDown事件才会识别为输入。

4. 5.3中新增加了特性,可以判断最近输入的设备

论坛是真的很有用,我都不知道有这个新特性

https://forums.unrealengine.com/t/detect-input-device/414096

官方文档

https://dev.epicgames.com/documentation/en-us/unreal-engine/BlueprintAPI/InputDevices/GetMostRecentlyUsedHardwareDevic-?application_version=5.3

具体实现

我现在需要的是识别输入设备,然后判断是不是gamepad,是的话不显示鼠标,反之展示。

5.3之前的实现:

通过anykey和mouse xy 2d-axis的识别来判断输入设置,具体如下

蓝图链接:

https://blueprintue.com/blueprint/m19-nmo0/

5.3后:

tick中进行输入设备的判断。当然,放到计时器里也是正确选择。

蓝图链接:

https://blueprintue.com/blueprint/s6l-wyqq/

注:这里的playerId是额外自己set的,没set过一直都是0

应该是本地多人游戏的一种应用




Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1