1)MuMu模拟器运行一段时间后Device.Present耗时突然上升
2)如何在运行过程中获得温度信息
3)Input System鼠标更换主按键的Bug
4)如何禁止Unity向https://config.uca.cloud.unity3d.com发送设备信息
这是第347篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。
Platform
Q:MuMu模拟器运行一段不固定的时间后Device.Present耗时突然上升,其中看Profiler里的有一个加载的信号量等待时间很长,不明白其中原因,想问问是否有朋友可以帮忙解释。
下图是用Profiler记录到的一个过程:
使用的引擎版本:Unity 2019.4.28f。
MuMu模拟器尝试了32位和64位的多个版本都能复现这个问题,真机和其它模拟器没有遇到。
我们对比相同引擎版本的另外一个项目,发现以下设置似乎会影响这个问题,还不是非常确定,说不确定是因为两点:
1. 这个问题发生时间不确定;
2. 在一个同事的模拟器上只需要将BlitType设置为Always就没有遇到上述问题,而另外一个同事的模拟器需要设置BlitType为Always并且禁用Optimized Frame Pacing。
A1:我也碰到了相同的问题,目前好像只有关闭Optimized Frame Pacing有效。
感谢JackCheng@UWA问答社区提供了回答
A2:建议尝试,隔一段时间就强制设置一下限帧:
IEnumerator Start() { yield return new WaitForSeconds(10); Application.targetFrameRate = 31; Application.targetFrameRate = 30; }
感谢littlesome@UWA问答社区提供了回答
A3:也遇到完全一样的问题。感觉模拟器闲置一边更容易出现(一般十分钟内),一直有操作的话反而不太容易(大约需要一个小时)。
一般情况下,游戏卡死往往模拟器也会很卡,这种卡的情况下,模拟器几乎没啥影响,可以正常开其他东西。怀疑模拟器对Google的这个Optimized Frame Pacing支持不太好,换过更高版本的Android SDK也是无效。
打开这两个选项,的确对手机端的体验有一定提升。
现在想要探索的解决思路是判断Andorid系统版本比较低的情况下,运行时关闭 Optimized Frame Pacing。
目前还没找到运行时关闭的办法。
感谢leviyuan@UWA问答社区提供了回答
Performance
Q:请问如何在运行过程中获得温度?我需要做个功能,如果温度高就降帧和降画质。
A:温度统计的规则还是比较复杂的,因为不同的设备获取到的温度值的数量很不一样(有些只能拿到电池温度,有些可以拿到20多个温度,包含电池、各个CPU、多个GPU、各种传感器等等),所以不同工具虽然获取机制差不多,但算出来的温度应该都会有些差异。
然后工具获取到的温度值和手感温度大多数情况下是不对应的(会出现温度值高,但手感温度不高的情况),所以不太建议把获取的温度值作为准确的发热依据,最好还是用FPS之类可以准确统计的值。
该回答由UWA提供
Script
Q:问题描述:把鼠标右键绑定一个动作名Cancel,此时点右键时能收到事件,然后在设置里把鼠标的主按键换成右键,此时我们的预期是点左键会收到事件,点右键收不到事件,但是在大部分电脑上还是右键收到事件Cancel。
临时解决方案:鼠标按键功能不通过Input System实现,用Input.GetMouseButtonDown来实现。
Unity版本:2020.3
Input System版本:1.3.0
系统:Windows10,Windows11
大家有没有遇到过这个问题,或者有没有解决方案呢?
A1:可能是你的键位映射没有设置好。正常情况下有一个默认键位设置,就是你们原本的。然后外层还有一层供修改的键位设置。一般操作时操作可修改的键位设置。
感谢曼华@UWA问答社区提供了回答
A2:Input System的思路是把代码实现的功能改成配制实现,所以运行时不应该再去修改设置,还有一点就是相同的配制在不同电脑上的表现不一致,如果上层的功能依赖一个不稳定的底层,上层是没有办法修正的。
感谢题主李伟@UWA问答社区提供了回答
Platform
Q:Unity转微信小游戏,发现启动的时候会向https://config.uca.cloud.unity3d.com发送请求,影响启动时间。
有没有办法关掉,版本2019,2021。
A:发布设置里看看有没有Disable HW Statistics这样的关键字。
感谢李伟@UWA问答社区提供了回答
封面图来源于网络
今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。
UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com