虚幻引擎UE5.1像素流无法控制鼠标

前言

今天遇到一个很神奇的事情,有一个虚幻引擎项目,用像素流无法控制鼠标,但是画面可以出来。但是同样的版本的项目,就是好的。我所使用的UE版本为UE5.1

问题排查

1、打开虚幻引擎源码 C:\Program Files\Epic Games\UE_5.1\Engine\Plugins\Media\PixelStreaming

2、找到鼠标移动的函数

43270935d8648f9203f3daea116cb0f4.png

3、开启日志 在启动程序中增加参数,这样就可以输出坐标信息

-LogCmds="LogPixelStreamingInputHandler Verbose"

查看日志,发现所有的坐标都为0

LogPixelStreamingInputHandler: Verbose: MOUSE_MOVE: Pos = (1080, 171); Delta = (0, 0)

找一个可以控制的像素流工程,发现坐标是有值的。

8f601db343b59a20abb5ae2cb1b9bb18.png

源码查看

发现进入了一个ConvertFromNormalizedScreenLocation的函数,进行了坐标转换,把前端像素流发过来的坐标转换UE的坐标。ed13349e727b28c0b06fda42d130bb15.png

最后发现TargetWindow不存在导致。

之后在虚幻引擎官方论坛,发现了同样的问题 https://forums.unrealengine.com/t/workaround-for-fpixelstreamingmodule-startupmodule-setting-invalid-targetwidow-on-streamer/736507

在UE5.2版本中已经修复

https://github.com/EpicGames/UnrealEngine/commit/9f448608c4fdc43f45e14bab2884e2a888914ab8

9783197366c78284ebcd50bb905d47a4.png a461a6c5b9960107999d90c20baf0720.png

修改源码为5.2修复的代码,编译之后 可以使用。

问题原因

最后排查,居然是由于设置了开机动画导致的在像素流插件启动的时候,没有获取到TargetWindow对象。关闭开机动画之后,可以正常使用UE5.1进行像素流的鼠标控制。54252746b1e1588f1a0b9e61cc4f3043.png

我的知识星球

请关注公众号g0415shenw 加入知识星球。
星球地址 https://t.zsxq.com/15EvfoA7n
星球有本人经验心得全部总结 涵盖音视频,gb28181、虚幻引擎、其他编程工具等等。另外还可以在星球提问,我会尽力答复,等于给您多了一个引路人。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值