UWP锁、解屏后无法响应操作
UWP的Unity项目,在PC上运行时,如果锁屏(手动或自动)再解锁,游戏画面和进度正常,但是无法进行鼠标、键盘或手柄的操作。这Bug在很多线上的Unity项目中存在。
原因:UWP App的系统事件触发有Bug。
在App的窗口被隐藏、切换到后台状况下,Window.Current.CoreWindow.Activated事件会被触发,参数中有bool值来表明当前主窗口是否是激活状态,只有激活状态的窗口才可以接受鼠标键盘灯信息;
经过测试,正常的切换和切回操作,该状态会成对(激活、非激活)触发,
同时成对触发的,还有Window.Current.CoreWindow.VisibilityChanged 事件
下图为触发时的log
,可以看出触发的顺序还有 2X2 =4个事件
但是在屏幕锁屏再解锁的操作过程中,只有VisibilityChanged成对触发,Activated事件并没能成对触发
下图为触发时的Log
,可以看出,缺失了一次Activated激活事件。
但并不意味着此时的主窗口是非激活状态的,因为当手动调用窗口的Acitve()方法时,并没有收到Activated事件,且此时,窗口上的原生UI是可以接受鼠标、键盘的输入的。
所以,仅仅是因为操作系统少发了一次系统事件,而这个事件会被Unity捕获,来判断窗口状态
Unity初始化的时候通过这句代码来获取所有的CoreWindow的事件并响应。
解决办法:
因为VisibilityChanged事件可以被正常触发,所以在该事件中,通知Unity,我们的窗口已经是激活的了。
获取并处理VisibilityChanged事件
同过在HelloWorld和Crossy Road项目中测试,已经解决了这个问题。
sOUTHeR.
UWP锁、解屏后无法响应操作的更多相关文章
- 实现:编辑短信,按power键锁屏后,再点亮屏幕,进入的还是编辑短信界面,按返回键才会进入解锁界面。
描述:在编辑短信界面按电源键锁屏后,重新按电源键点亮屏幕,并没有进入到锁屏界面而是在编辑短信界面,此时短信界面悬浮与锁屏界面之上,这时按返回键关闭编辑短信界面,回到锁屏界面,是如何实现的呢,只需要在需 ...
- Ubuntu18---VMware虚拟机中Ubuntu18.04系统,开机输入密码后无响应黑屏
系统崩坏了,重装过几次,这次决定不充装了. 搜索大神解决方案后,了解到是图形界面程序损坏,可能是在更新内核或者安装软件的时候,把与xorg相关的文件给清除了. 解决方案如下: 1.登录系统进入,黑屏后 ...
- 【系统】win10锁屏后,护眼绿自动恢复解决
针对自己电脑(其他人的不晓得),win10锁屏后,重新登录,护眼绿会自动恢复成白色,查询资料需要修改注册表两个地方: 1.计算机\HKEY_CURRENT_USER\Control Panel\Col ...
- 详解Google Chrome浏览器(操作篇)(下)
开篇概述 由于最近忙于公司产品的架构与研发,已经三个多月没有写博客了,收到有些朋友的来信,问为什么不及时更新博客内容呢,他们说他们正期待着某些内容.对此,非常抱歉,那么我在此也给各位朋友一些承诺,从即 ...
- 详解Google Chrome浏览器(操作篇)(上)
开篇概述 在上篇博客中详解Google Chrome浏览器(理论篇)一文中,主要讲解了Chrome 搜索引擎使用.Chrome安装和基本操作.Chrome 基本架构.多线程等原理性问题,这篇将重点讲解 ...
- Cookie 详解以及实现一个 cookie 操作库
Cookie 详解以及实现一个 cookie 操作库 cookie 在前端有着大量的应用,但有时我们对它还是一知半解.下面来看看它的一些具体的用法 Set-Cookie 服务器通过设置响应头来设置客户 ...
- android灭屏后调用binder通讯竟然影响了socket的POLL_OUT事件,怪事。
当你的android在灭屏(休眠)时分派(dispatch) Ice调用过程中,如果创建了新的进程,你的响应将不会预期那样工作,尽管你已经调用 ice_response或 ice_exception, ...
- Linux下误删除后的恢复操作(ext3/ext4)
Linux是作为一个多用户.多任务的操作系统,文件一旦被删除是难以恢复的.尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据.在日常工程 ...
- 树莓派 Learning 002 装机后的必要操作 --- 01 解决上网问题
树莓派 装机后的必要操作 - 解决上网问题 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 树莓派 装机后的必要操作 解决上网问题 解决上网 ...
随机推荐
- hide the navigationBar and tabBar
[self.navigationController setNavigationBarHidden:YES animated:NO]; hidesBottomBarWhenPushed
- over-float清除浮动
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Left/Right/Inner Join用法和区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只 ...
- select下拉框
<optgroup label="Alaskan/Hawaiian Time Zone"> <option value="AK">Ala ...
- git第一篇---基本命令
摘要: (1)用git而不是svn.分布式而不是集中式 (2)名词解释 origin是父目录的意思,master是 一个特殊的分支而已.具体参看做最下边: 1.创建仓库 mkdir git cd gi ...
- oracle监听无法启动
昨天再监听里新加了个地址,重启电脑后监听无法启动,删除新加地址就好了 # listener.ora Network Configuration File: d:\oracle\product\10.2 ...
- 【Todo】AMQP示例学习
这个网站非常好: http://www.rabbitmq.com/getstarted.html 把AMQP的各种用法都讲了,还带上了各种语言: 第一篇 http://www.rabbitmq.com ...
- jQuery常用的查找Dom元素方法
废话不多说,先来个总结,然后下面是demo 一. 同级节点之间的检索(检索深度N=0) next()是在兄弟节点中,往后匹配; prev()是在兄弟节点中,往前匹配. 二. 父级/子级节点的检索(检索 ...
- css3的box-sizing--从此不用担心盒模型的不兼容
前段时间阿里的面试问了关于盒模型的东西,众所周知,ie和标准盒模型是有着区别的.面试官问有没有什么办法可以改变盒模型的显示效果.答案是css3的box-sizing: 其可以取三个值: 1.值cont ...
- RS485中继器电路(转)
源:RS485中继器电路(转) --------以上部分请勿修改!------------- RS-485中继器 由于在双绞线上的电平损耗,RS-485标准通信的最大传输距离是1200米(4000英尺 ...